Depende realmente do que você quer fazer, ou que tipo de aplicativos do Win você quer usar no Ubuntu ... Não há uma solução "melhor".
O vinho é realmente definido como "emulação" de um software em um ambiente linux.
A VM é definida para executar um SO completo em outro (uma espécie de "Inception" do SO).
Os jogos são ótimos com o Wine (pense em adicionar o pacote Winetricks também para coisas DLL, DirectX e Microsoft SQL). Mas nem pense em rodar um jogo DirectX 3D em uma máquina virtual (ou você tem um computador hardcore com enormes recursos).
As suítes do Microsoft Office (especialmente as versões 2007 e 2010) não funcionam muito bem com o Wine (o aplicativo trava), mas, nesse caso, executá-las em uma VM pode ser uma boa opção.
... e assim por diante ...