Cette graphie est due à la nasalisation, puis dénasalisation de la voyelle placée devant la consonne nasale [m]. Ce phénomène a touché toutes les voyelles placées devant des consonnes nasales.

L'explication la plus simple que j'ai trouvée est [ici](http://bbouillon.free.fr/univ/hl/Fichiers/Cours/orthog.htm) :


>  Les consonnes nasales doubles nn et mm sont des graphies historiques
> ; elles correspondent à une prononciation : voyelle nasalisée +
> consonne nasale (une année [ãne], un homme [õm], une femme [fãm], la
> grammaire [gRãmeR]). La voyelle, nasalisée au XI, s'est ensuite
> dénasalisée, aux XV<sup>e</sup> - XVII<sup>e</sup> siècles, le plus
> tardivement pour le on [õ]. On a donc d'abord écrit an pour [ã] + 2ème
> consonne n.



Pour une explication plus scientifique on peut regarder *Introduction à la phonétique historique du français*. (Annick Englebert) que j'essaie de résumer ici :

La nasalisation est un phénomène qui s'est produit du X<sup>e</sup> siècle. Il a affecté les voyelles et les diphtongues suivies des nasales [m] [n] ou [ɲ].

Processus :
La présence d'une consonne nasale a sur la voyelle qui précède trois effets successifs.

- Au VII<sup>e</sup> siècle les voyelles simples entravées par une consonne finale nasale se ferment, ainsi
 [ɛn] >[en], [ɔn]>[on].

- Entre le X<sup>e</sup> et le XIV<sup>e</sup> siècles, la voyelle qui précède la consonne nasale se nasalise (anticipation de l'abaissement du voile du palais).
Les premiers phénomènes touchés par les nasalisations sont les voyelles et diphtongues plus ouvertes, à savoir les voyelles [a] et [e] et les diphtongues correspondantes. Les voyelles fermées suivront.

- À l'achèvement de la phase de nasalisation, toutes les voyelles sont nasalisées devant les consonnes nasales qui subsistent ; la séquence voyelle nasale+consonne nasale est donc systématique (ce dont des graphies tendent à rendre compte en doublant la nasale (nn/mm) : feme/femme.

À l'issue de la phase de nasalisation des voyelles, un des deux phénomènes d'articulation nasale va être éliminé :

- la consonne si elle est en position faible
- la voyelle si elle est en position forte (syllabe ouverte ou initiale). On est dans ce cas pour femme : fémĩnam >femme

En ancien français les copistes notaient la nasalisation soit en usant d'un tilde (~) sur la voyelle, soit en doublant la consonne intervocalique ; le doublement de la consonne a été conservé dans certaines graphies modernes.