Come fai giustamente notare, il latino aveva dieci diverse vocali (cinque lunghe e cinque brevi), mentre l'italiano ne ha solo sette. Questo è l'esito finale di un fenomeno comune a tutte le lingue neolatine (anche se nelle altre questo fatto è in parte oscurato da mutamenti fonetici successivi) eccetto il sardo.
Questo fenomeno, chiamato forse un po' melodrammaticamente the Great Merger da Alkire e Rosen ([1], 1.2.3), consiste nella fusione di /ĭ/ ed /ē/ per formare la singola vocale /e/, e di /ŭ/ ed /ō/ a formare la vocale /o/ (un simile ma più intutivo fenomeno aveva già fuso /ă/ ed /ā/ in /a/).
La causa di questo sembra essere una preesistente (ma minore) distinzione di qualità tra le vocali lunghe e brevi, già presente in latino classico, che andò a rimpiazzare la svanente distinzione di lunghezza.
Le vocali latine corte erano pronunciate con un'articolazione più aperta delle loro controparti lunghe (cf. Allen (1978: 48f.)). Nel sistema vocalico che soggiace storicamente all'italiano, le vocali corte (eccetto per [a], già massimalmente aperta) aumentarono queste distinzioni di apertura cosicché, mentre le lunghe [i:] e [u:] conservarono le loro qualità, le corte [i] e [u] si aprirono in [e] e [o], fondendosi quindi con i riflessi delle latine lunghe [e:] e [o:].
(Maiden, Martin. A linguistic history of Italian. Routledge, 2014. Sezione 2.1, traduzione mia)
[1] Alkire, Ti, and Carol Rosen. Romance languages: A historical introduction. Cambridge University Press, 2010.