I can offer a small workaround. Your problem is equvalent to
sol=FullSimplify[DSolve[{y'[x] == A0 + A1 y[x] + A2 y[x]^2, y[0] == y0}, y[x], x]]

By expanding and comparing with your variables:
y'[x] == c d - (c + b d) y[x] + b y[x]^2
y'[x] == A0 + A1 y[x] + A2 y[x]^2
We can get your formulation by the substitution:
PowerExpand[FullSimplify[sol /. {A0 -> c d, A1 -> -(c + b d) , A2 -> b}]]

You can check now by direct substitution that this is indeed solution to your differential equation.
==== Edit: answering "why does not work?" question ===
I can try to guess the trouble of your formulation - I think it is in your choice of parameters. As Sjoerd C. de Vries in his answer noticed a general solution leads to
DSolve[y'[x] == c*(d - y[x]) - b*(d - y[x])*y[x], y, x]

Now Solve cannot "solve" your initial value problem:

Using Reduce you can arrive to a complex conditions set for the solution:

Which looks glorious ;-) but not simple. With a bit different formulation above (via A0, A1, A2) you do not run into this problem - Solve can handle easily your initial condition. This is rather a rare case - you were lucky to hit exactly problematic choice of parameters. This was some quick thinking - it's subject to verification.