I think they're all comparable in speed, since Linux is so good at optimizing streaming disk read/write operations.

"cat" is probably the slowest of the three, due to pipe buffering defaults. But cp and dd should be equal with default parameters. One might be able to tweak out a slightly faster time with dd using an appropriate bs=nnn parameter.

Cheers