Sì, anche i romani avevano problemi con lo zero.
Questa è solo una conseguenza [non intuitiva] della matematica (essendo una forte componente della programmazione, in particolare della programmazione iniziale) che definisce zero come il primo (termine problematico quello) numero naturale reale, positivo * e poiché un array è indicizzato con reale , numeri naturali il "primo" elemento è all'indice 0.
I mesi sono in realtà valori denominati in un array, dove giorni e anni sono valori numerati - forse sarebbe più utile pensare a giorni / anni come se fossero in array che assomigliano a {"1", "2", "3",. .. } loro stessi.
Quanto al motivo per cui questo è così comune (oltre ad essere matematicamente corretto), tutte le lingue che hai elencato discendono da un'origine comune per una cosa ...
Modificare:
Analizzando ulteriormente, questo collegamento di wikipedia descrive in dettaglio diversi buoni e interessanti motivi per l'indicizzazione zero (che non parla direttamente del motivo per cui i mesi sono indicizzati a zero ma penso che sia già coperto), e questo collegamento SO ha già risposto alla domanda.
Sembra che l'opinione prevalente sia "incidente storico" o "perché i mesi non sono numeri, quindi non possono essere confrontati con l'archiviazione giornaliera / annuale" a seconda di chi chiedi.
* Scusa, scusa, fisica! = La matematica sta tornando a mordermi lì. Adesso vado a stirare le mani.