Cela provient tout simplement de l'origine de ces mots.
Ce n'est absolument pas un fait exprès pour distinguer ces deux mots à l'orthographe si proche, mais bel et bien de leur usage qui a évolué dans le temps.
Ainsi, l'origine latine de fille est figlia.
Alors que l'origine de ville est villa.
Si les deux ont évidemment perdu leur consonance latine (le ''a'' final), le premier a naturellement évolué vers le "ille" alors que le second a tout autant naturellement gardé le ''ile'' de sa prononciation initiale.
Garder la prononciation en transformant l'orthographe... c'est ça le
français !