A homofonia entre à e há sem dúvida que contribui para o erro. E além disso, creio que, para quem nunca viu a expressão escrita, ao ouvir há dois anos não se apercebe que a primeira palavra é uma forma do verbo haver, até por que não é nada óbvio.
Eu era já adulto quando dei comigo a pensar se era à dois anos ou há dois anos. Imagino que nunca tivesse lido aquela construção, afinal é bastante mais comum na linguagem falada do que na escrita, ou que tivesse lido e não tivesse prestado atenção. Fosse o que fosse, o que é certo é que até aí eu tinha usado a construção como uma expressão idiomática, sem nunca ter pensado no significado da primeira palavrinha isoladamente.
Claro que depois descobri ou cheguei à conclusão que era há dois anos: existem dois anos. Mas na verdade, há algo de idiomático na expressão. Por que razão se diz há dois anos visitei a Polónia? A concordância de número exigiria hão dois anos visitei a Polónia. Substituindo o há por existe evidencia ainda outro problema: existe dois anos visitei a Polónia. Não deveria ser existem dois anos desde que visitei a Polónia? Não admira que não salte à vista, ou ao ouvido neste caso, a primeira palavrinha ser uma forma do verbo haver.
Provavelmente quem escreve à dois anos nem toma consciência que à é a contração da preposição com o artigo. Se tomassem, teriam que escrever aos dois anos ou talvez a dois anos (se nós dizemos daqui a dois anos...) e na distinção entre a e à os portugueses até se safam. Portanto imagino que quem faz o erro pense que aquele à tem outro significado qualquer que só se aplica naquela construção. Seria interessante fazer um inquérito.
Entretanto pesquisei no Google a frequência do erro em Portugal e no Brasil. Os resultados estão na tabela abaixo.
Resultados do Google Search
Percentagem do total
Brasil há ha à a á há + ha à + a + á
Esperando [] muito tempo 317 60 130 286 31 52% 48%
Esperando [] horas 124 19 29 114 29 45% 55%
Portugal
[] bué de/da tempo 101 31 65 63 52 42% 58%
Espera [] muito tempo 119 16 42 28 2 65% 35%
Espera [] imenso tempo 45 3 17 12 6 58% 42%
Espera [] horas 40 0 6 2 5 75% 25%
Globalmente parece que brasileiros e portugueses têm mais ou menos a mesma propensão a errar. Em Portugal parece haver um padrão curioso. Bué de ou bué da (o da é aqui usado independentemente do género da palavra seguinte), significando ‘grande quantidade de, muito’, é usado praticamente só por malta jovem; e é associado a esta expressão que a frequência relativa do erro é maior. Não creio que os jovens escrevam pior que os adultos. O que acontece é que todos os jovens escrevem na net; enquanto entre os mais velhos, são predominantemente os mais instruídos. E não encontrei nenhum esperando há/à/etc. imenso tempo no Brasil!