tl;dr: Porque escrevemos "ordem" com ⟨-m⟩, enquanto o restante escreve "orden" com ⟨-n⟩?
No latim existiam basicamente dois grupos de terminações nasais: as finalizadas em ⟨-m/-n⟩ e as finalizadas em ⟨-nt/-nem⟩.
As terminações do primeiro grupo ⟨-am/-an, -em/en, -um/on⟩ eram realizadas como vogais nasais /-ã, -ẽ, -õ/ no latim vulgar, e acabaram "desnasalizando" no latim vulgar tardio e transformaram-se no português ⟨-a, -e, -o⟩. Eis uma lista de palavras latinas com terminação neste grupo, com suas respectivas pronúncias no latim vulgar e descendentes no português (os nomes estão no acusativo, pois é a forma que herdamos):
LATIM (LAT. VULGAR) > PORTUGUÊS
jam (/jã/) > já
servum (/servõ/) > servo
possum (/possõ/) > posso
sum (/sõ/) > sou
clarum (/clarõ/) > claro
claram (/clarã/) > clara
sortem (/sortẽ/) > sorte
parietem (/paretẽ/) > parede
avem (/avẽ/) > ave
nomen (/nomẽ/) > nome
regimen (/regimẽ/) > regime
manum (/manõ/) > mão (originalmente "mano", mas o ⟨n⟩ deletou-se)
As terminações do segundo grupo ⟨-ant/-anem, -ent/-enem/-int, -inem, -onem/-unt, -unem⟩ perderam os finais "-t/-em" no latim vulgar tardio, sendo realizadas como /-an, -en, -in, -on, -un/; e transformaram-se no português ⟨-ão, -em, -im, -ão, -um⟩, para oxítonas, e ⟨-am, -em, -em, -am, -am⟩, para não-oxítonas. Eis uma lista de palavras latinas com terminação neste grupo, com suas respectivas pronúncias no latim vulgar e descendentes no português (a maioria são verbos na terceira pessoa do plural, mas os nomes estão no acusativo, pois esta é a forma herdada pelo português):
LATIM (LAT. VULGAR) > PORTUGUÊS
leon(em) (/leon/) > leão
can(em) (/can/) > cão
stan(t) (/stan/) > estão
homin(em) (/homin/) > homem
fin(em) (/fin/) > fim
commun(em) (/comun/) > comum
origin(em) (/origin/) > origem
ordin(em) (/ordin/) > ordem
fuligin(em) (/fuligin/) > fuligem
aman(t) (/aman/) > amam
amen(t) (/amen/) > amem
serven(t) (/serven/) > servem
toleren(t) (/toleren/) > tolerem
facian(t) (/fakian/) > façam
fecissen(t) (/fekisen/) > fizessem
fecerun(t) (/fekerun/) > fizeram
Minha dúvida está na nossa ortografia. Enquanto todos as demais línguas românicas usam ⟨-n-⟩ para este último grupo de palavras, o português usa ⟨-m⟩. Eis uma lista de cognatos (só usei essas duas línguas porque são as que conheço, mas as demais seguem o mesmo padrão, exceto pelo Sardenho, que se desprendeu do latim bem antes das mudanças supracitadas ocorrerem):
amam: espanhol "aman", italiano "amano"
tolerem: espanhol "toleren", italiano "tollerino"
comum: espanhol "común", italiano "comune"
fim: espanhol "fin", italiano "fine"
ordem: espanhol "orden", italiano "ordine"
origem: espanhol "origen", italiano "origine"
fuligem: espanhol "hollín", italiano "fuliggine"
Por que a ortografia do português usa o ⟨-m⟩ para palavras do segundo grupo enquanto as demais línguas usam o ⟨-n⟩?
A ortografia do português antigo escrevia essas palavras com ⟨-n⟩ (veja a grafia de "orden" no final do 1º parágrafo dessa cantiga). Ou seja, em algum momento do passado preferiu-se adotar a grafia ⟨-m⟩ em vez de ⟨-n⟩, implicando numa etimologia incorreta, já que todas as palavras do latim com ⟨-m⟩ perderam a nasalização (primeiro grupo); e criando uma flexão defectiva, já que essas mesmas palavras vão ao plural com ⟨-ns⟩ (exemplo: origem/origens, só adotamos o padrão ⟨-n⟩ no plural, mas o singular possui a inovação ⟨-m⟩ estranha, que só existe no português).