O maior problema que tenho com a inicialização dupla é o fato de que uma reinicialização é necessária para executar um programa a partir do outro sistema operacional. O que obviamente inclui o fechamento de todos os seus aplicativos em execução, às vezes apenas para executar um programa rápido no outro SO e depois voltar, tendo que reabrir o que estava aberto antes.
Portanto, a menos que o programa que você precisa executar no Windows não funcione dentro de uma VM (o que pode ser o caso dos jogos, dependendo do jogo e do hardware), recomendo usar uma VM. Dessa forma, você pode manter seus programas do Ubuntu abertos e executar os programas do Windows que você precisa, sem ter que reiniciar.
Geralmente, você nem precisa de uma VM. Você pode usar o WINE para rodar programas do Windows dentro do Linux, mas muitos programas não funcionam de imediato, e configurá-los dentro do WINE pode não ser trivial. É difícil dizer qual solução seria melhor porque depende muito de quais programas do Windows você precisa executar, entre outros fatores.