Uma CPU virtual equivale a 1 núcleo físico, mas quando sua VM tenta processar algo, ela pode ser executada em qualquer um dos núcleos que estiverem disponíveis no momento. O agendador lida com isso e a VM não está ciente disso. Você pode atribuir várias vCPUs a uma VM, o que permite que ela seja executada simultaneamente em vários núcleos.
Núcleos são compartilhados entre todas as VMs, conforme necessário, para que você possa ter um sistema de 4 núcleos e 10 VMs em execução com 2 vCPUs atribuídas a cada um. As VMs compartilham todos os núcleos em seu sistema com bastante eficiência, conforme determinado pelo agendador. Esse é um dos principais benefícios da virtualização - aproveitar ao máximo os recursos sub-inscritos para alimentar várias instâncias do sistema operacional.
Se suas VMs estão tão ocupadas que precisam lidar com o tempo de CPU, o resultado é que as VMs podem ter que esperar pelo tempo de CPU. Novamente, isso é transparente para a VM e tratado pelo agendador.
Não estou familiarizado com o KVM, mas todos os itens acima são um comportamento genérico para a maioria dos sistemas de virtualização.