When you compute dp[v] from dp[u], you are saying: every path that reaches can be extended by one edge to reach . So the number of new paths to through is exactly dp[u]. Since paths through different predecessors are distinct, you add them all: dp[v] = Σ dp[u] for all edges .
This is different from shortest or longest path, where you take or . Counting problems use addition.