dd' was needed to interact with the block devices,
0
down vote
You want to use dd so that you can specify things like bsize
tuning this to some multiple of 4k is going to be much faster than cat
dd has a number of useful extra features for more complex data copies
2
down vote
If I remember correctly, dd is much more "low level" in is approach, skipping such fancy things as filesystems and all the bells and whistles :)
dd is problematic in the presence of disk errors, and can hang
or more importantly ignore non readable data
Fascinating discussion over at Stack Overflow.
Elucidates some of the subtle differences between dd and cat, and when and why you might want to use one over the other.