I think I found the answer in good old dd itself --

"In 6.5 and beyond, use dd conv=ignerror, to have it do all the hard work itself, and also write zero's on the destination blocks that can't be read from the source."

Can anyone confirm?

Thanks,
Yonatan