Um dos maiores problemas está no número de versões disponíveis: como existem vários Linux, a pergunta: "Qual o melhor?" paira na mente de todos que vão migrar de Windows para Linux. Como só existe uma versão nova do Windows (Windows 7. Suas subversões não contam ok?), o usuário não tem muita escolha, já no Linux essa escolha acaba passando a idéia de que nenhum Linux é completo por si só, tendo diversas versões para que todos os pontos de falha consigam ser cobertos. Imagine algo como a seleção brasileira e os times de futebol. Na seleção, você tem certeza que tudo de melhor está lá, em um só lugar. Já nos times, tem uma parte boa em um time, outra em outro time, e por ai vai, o que acaba passando essa idéia de "incompleto".
Outro grande problema é a instabilidade da interface. Enquanto no Windows todos os softwares seguem uma linha de desing nas interfaces, no Linux cada programa tem suas interface própria, o que passa essa idéia de descentralização e de que o Linux é só um amontoado de programas. Por mais que esse tipo de coisa pode parecer ridícula para quem escuta, é exatamente esse tipo de idéia que tem na cabeça dos usuários, e pra falar bem a verdade, por usuários entenda tanto o usuário casual quanto o que sabe o que esta fazendo na frente de um computador.
Suporte: no Windows, basta você acessar uma pasta, deletar um arquivo, passar anti-vírus ou mudar uma simples configuração para que 99% dos problemas sejam resolvidos. No Linux, "basta" você ir ao terminal, digitar etc etc etc... pronto, para o usuário comum, nada que não se resolva apertando uma série de botões é complicado demais. E isso nos leva ao próximo ponto;
Fama: o Linux carrega a fama de ser um sistema em que o usuário tem que saber usar o terminal (linha de comando). Isso afundou e afunda o sistema de um modo inexplicável. Por mais que hoje, o Linux não seja tão dependente do terminal (Ubuntu por exemplo quase extingui-o, por mais que ainda seja necessário), a fama fica.
Muito técnico, pouco usuário: quando se faz um update no Windows, você vê as seguintes escritas: "Baixando", "Instalando", "Pronto". No Linux, você vê: "Baixando pacotes .deb do servidor tal", "Descompactando pacotes .deb para root local". etc etc, isso assusta o usuário, que faz pensar que o Linux é um sistema feito para quem entende do que se passa, e não um sistema casual como Windows ou Mac.
De graça é porque não é bom: essa é outra idéia que paira na cabeça do pessoal: Se está de graça, é porque não é bom, se fosse, não era grátis. Por mais que tal idéia seja correta muitas vezes, ela não necessariamente se aplica ao universo Linux.
Resumindo tudo: o problema da migração não é técnico nem relacionado ao uso, e sim ao visual. O mundo é visual hoje em dia, e o Linux (sim, ele está começando a entender isso) ainda não chegou no mesmo ponto do Windows em termos de visual. A melhor distribuição do mercado para usuários comuns, o Ubuntu, peca MUITO em termos de cores e de não unificar a interfaces dos programas que contem (por mais que isso não seja, necessariamente, culpa do sistema). Se quer uma idéia do que eu digo, pensando como um usuário comum, me diga: Qual dos dois sistemas você escolheria se não os conhece-se, mas tivesse que escolher algum:
-
http://old.nabble.com/attachment/22220577/0/Capture.png
-
http://cache.gawker.com/assets/images/lifehacker/2009/01/win7_full_desktop.jpg
Lamentavelmente, é nesse ponto que o dinheiro faz a diferença. A Microsoft investe milhões todo ano a procura de uma interface perfeita e amigável. A comunidade Linux não tem esse dinheiro, por mais que consiga fazer um trabalho razoável.