As máquinas virtuais em todos os hipervisores que conheço são capazes de usar CPUs virtuais adicionais nas quais programar threads de execução simultâneos adicionais.
É exatamente essa camada de abstração entre a máquina física e a máquina virtual que faz com que não funcione da maneira que você descreve. A VM não sabe quantos núcleos a máquina física possui. A VM não "vê" as CPUs (ou núcleos) físicas na máquina física. O hypervisor fornece à VM quantas CPUs virtuais, e o sistema operacional convidado usa essas CPUs virtuais para programar encadeamentos simultâneos adicionais ... O número total de CPUs virtuais que o hypervisor distribui para as máquinas virtuais pode até exceder o número de CPUs físicas / núcleos na máquina.
Dito de outro modo, uma máquina virtual, quando atribuída a uma única vCPU, programa seus encadeamentos como se tivesse apenas uma CPU. Não importa quantos núcleos estão na máquina física subjacente. (Embora seja interessante notar que a máquina física pode programar esse thread de VM em um núcleo físico para um quantum de thread ou fatia de tempo e, em seguida, executá-lo em um núcleo físico diferente na próxima vez que ele estiver programado para ser executado. Não há nenhuma ideia de que isso esteja acontecendo, tudo o que se sabe é que ele só pode agendar um thread de cada vez, um após o outro, porque ele tem apenas uma CPU virtual.
E vamos ser muito claros sobre nossos termos aqui. Você atribui vCPUs, ou CPUs virtuais, às VMs, não aos "núcleos". Núcleos (pelos quais suponho que você quer dizer unidades de processamento físico que compartilham um único soquete físico) não são iguais a vCPUs. Existe uma camada de abstração entre eles. Se uma VM tiver apenas 1 vCPU atribuída a ela, só poderá agendar um thread para ser executado por vez. É por isso que sua máquina virtual é executada mais rapidamente com 2 ou 4 CPUs virtuais atribuídas a ela, pois agora ela pode agendar mais de um thread para execução simultânea.
No entanto, existe definitivamente uma lei de retornos decrescentes, já que um número excessivo de CPUs virtuais incorrem em custos indiretos cada vez maiores em coisas como sincronização, etc.
Existem pequenas diferenças entre o modo como os hipervisores Hyper-V e VMware agendam segmentos de máquinas virtuais para execução e diferem em sua abordagem à "assinatura excessiva" de recursos físicos, mas esse é um conceito geral bom para começar.