A partir da leitura de man systemd-run , ele criará service e, portanto, cgroup on the fly. A partir da leitura de systemd.exec , a diretiva Nice= será aplicada a todos os processos executados, portanto, a maneira como systmd lida com os conceitos de Nice= e CPUShares= é muito semelhante.
Meu entendimento do relacionamento é que isso tem a ver com a história. nice existe há um par de décadas e sempre se aplica a processos específicos.
Por outro lado, o conceito de cgroups e a idéia de aplicar CPUShares= a um grupo de processos é um conceito muito mais recente, mas atinge o mesmo objetivo.
Espero systemd suporta Nice= para compatibilidade histórica.
Eu usaria qualquer um com o qual você estivesse confortável, mas não ambos, para evitar confusão. Se você não tem preferência, eu usaria o mais novo conceito CPUShares= .