It's program specific. The vast majority of linux distros come with GNU cp, which takes either. BSD's version of cp only takes -R, Mac's too I suppose since it's BSD-based.
The annoying ones on linux are chmod/chown, they take -R only.
EDIT: it's OS specific in the sense that these programs follow the OS's convention, I expect BusyBox cp, a lightweight Linux version of cp, has the same options as GNU cp