Don't know is it because it's not on nix but mac.
BSD cp(1) wrote:
Historic versions of the cp utility had a -r option. This implementation supports that option; however,
its use is strongly discouraged, as it does not correctly copy special files, symbolic links, or fifo's.
The Open Group wrote:
The -r option is historical practice on BSD and BSD-derived systems.
This option is no longer specified by POSIX.1-2008 but may be present in some implementations.
The -R option was added as a close synonym to the -r option, selected for consistency with all other
options in this volume of POSIX.1-2008 that do recursive directory descent.
The difference between -R and the removed -r option is in the treatment by cp of file types other than
regular and directory. It was implementation-defined how the -R option treated special files to allow both
historical implementations and those that chose to support -r with the same abilities as -R defined by this
volume of POSIX.1-2008.
The original -r flag, for historic reasons, did not handle special files any differently from regular files,
but always read the file and copied its contents. This had obvious problems in the presence of
special file types; for example, character devices, FIFOs, and sockets.
TL;DR: use -R
instead of -r
if you want a script to be POSIX-compliant.