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. Além disso, foi projetado principalmente para transferir arquivos pela rede. Além disso, rsync
tem mais dependências em relação aos coreutils, no entanto, essa diferença não faz muito sentido.
ps. A propósito, o uso da CPU ainda é importante nos sistemas embarcados.