A confusão fui/foi para alguns falantes da língua portuguesa não é uma questão de erro, mas fruto de diferentes evoluções registadas na história da língua portuguesa.
O verbo ir resultou da convergência dos verbos latinos 'ire', 'vadere e 'esse'.
O verbo ir recebeu do verbo 'esse' o pretérito perfeito do indicativo, o pretérito imperfeito do conjuntivo e o pretérito perfeito do conjuntivo, que esteve na origem do actual futuro do conjuntivo.
O pretérito perfeito do indicativo do verbo 'esse' era o seguinte: 'fui, fuiste, fuit, fuimus, fuistis, fuerunt'.
Por influência do latim vulgar, a terceira pessoa do singular teve a seguinte evolução: 'fuit > *foe' > foi. Esta evolução facilitou a distinção entre a primeira pessoa e a terceira pessoa do singular.
A confusão entre fui e foi existiu no português arcaico e ainda se mantém nalgumas regiões de Portugal.