Proving identity in infinite series
By induction on $d$.
$$\begin{aligned} \frac{1}{1-ab_1} \frac{1}{1-ab_2} &= \left(\sum_{n=0}^\infty (ab_1)^n\right)\left(\sum_{n=0}^\infty (ab_2)^n\right)\\ &=\sum_{n=0}^\infty \left(\sum_{l=0}^nb_1^lb_2^{n-l}\right) a^n\\ &=\sum_{n=0}^\infty \left(\sum_{c_1+c_2=n}b_1^{c_1} b_2^{c_2}\right) a^n \end{aligned}$$
according to Cauchy product formula.
Now apply again Cauchy product formula to pass from $d$ to $d+1$:
$$\begin{aligned} \prod_{i=1}^{d+1} \frac{1}{1 - a b_i} &=\left(\prod_{i=1}^{d} \frac{1}{1 - a b_i}\right)\frac{1}{1 - a b_{d+1}}\\ &= \left(\sum_{n=0}^\infty \left(\sum_{c_1+ \dots +c_d=n}b_1^{c_1} \dots b_d^{c_d}\right) a^n\right)\left(\sum_{n=0}^\infty (ab_{d+1})^n\right)\\ &= \sum_{n=0}^\infty \left(\sum_{l=0}^n \left(\sum_{c_1+ \dots +c_d=l}b_1^{c_1} \dots b_d^{c_d}\right)b_{d+1}^{n-l}\right)a^n\\ &=\sum_{n=0}^\infty \left(\sum_{c_1+\dots + c_{d+1}=n}b_1^{c_1} \dots b_{d+1}^{c_{d+1}}\right) a^n \end{aligned}$$
We introduce the indicator function notation defined by
$$ \mathbf{1}_{\{ \cdots \}} = \begin{cases} 1, & \text{if $\cdots$ holds}, \\ 0, & \text{if $\cdots$ does not hold}. \end{cases} $$
Then the sum is can be rewritten as
\begin{align*} \sum_{n=0}^{\infty}a^n \sum_{\substack{c_1,\ldots,c_d\geq0\\c_1+\cdots+c_d=n}} b_1^{c_1} \cdots b_d^{c_d} &= \sum_{n=0}^{\infty} \sum_{\substack{c_1,\ldots,c_d\geq0\\c_1+\cdots+c_d=n}} (a b_1)^{c_1} \cdots (a b_d)^{c_d} \\ &= \sum_{n=0}^{\infty} \sum_{c_1,\ldots,c_d\geq0} \mathbf{1}_{\{ c_1+\cdots+c_d=n \}}(a b_1)^{c_1} \cdots (a b_d)^{c_d}. \end{align*}
Since the two sigma-notations in the last line are independent of each other, we can freely interchange the order[1] to get
\begin{align*} \sum_{c_1,\ldots,c_d\geq0} \Biggl( \sum_{n=0}^{\infty} \mathbf{1}_{\{ c_1+\cdots+c_d=n \}} \Biggr) (a b_1)^{c_1} \cdots (a b_d)^{c_d}. \end{align*}
However, for each given $c_0, \ldots, c_d \geq 0$, there is exactly one $n \geq 0$ such that $c_1+\cdots+c_d=n$ holds, and so, the inner sum is always $1$. So the sum simplifies to
$$ \sum_{c_1,\ldots,c_d\geq0} (a b_1)^{c_1} \cdots (a b_d)^{c_d} = \Biggl( \sum_{c_1 \geq 0} (a b_1)^{c_1} \Biggr) \cdots \Biggl( \sum_{c_d \geq 0} (a b_d)^{c_d} \Biggr) = \frac{1}{1 - ab_1} \cdots \frac{1}{1 - ab_d}. $$
Remark. The same conclusion can be derived without the use of indicator function. However, my personal impression is that this method provides great flexibility when working with multiple sums.
[1] Switching the order of summation is not always possible. Fubini's theorem provides a sufficient condition for this. In OP's case, this is possible if either $\left| ab_i \right| < 1$ for all $i = 1, \ldots, d$ or $ab_i \geq 0$ for all $i = 1, \ldots, d$. Alternatively, if we regard the sum as a formal power series, then no such assumption is required.