cp
é uma parte dos coreutils, portanto, está presente em todos os lugares. além disso, foi projetado principalmente para copiar arquivos dentro de um computador.
rsync
não faz parte do coreutils, não está presente nem no ambiente padrão. Foi projetado principalmente para transferir arquivos pela rede. Além disso, o rsync tem mais dependências em comparação com o coreutils, no entanto, essa diferença não faz muito sentido.
A principal vantagem do cp sobre o rsync é o tempo e menos uso de cpu.