Oui, les Romains avaient des problèmes avec zéro.
C'est juste un [non-intuitif] conséquence de mathématiques (étant une composante importante de la programmation, surtout en début de programmation) de la définition de zéro, comme le premier (terme problématique que l'on) réel, positif* nombre naturel, et depuis un tableau est indexé avec de vrais nombres naturels le "premier" élément est à l'index 0.
Mois sont vraiment nommée des valeurs dans un tableau, où les jours et les années sont numérotés de valeurs, il serait peut-être plus utile de penser à jours/années comme étant dans des tableaux qui ressemblent à des { "1", "2", "3", ... } eux-mêmes.
Pourquoi c'est si commun (en plus d'être mathématiquement correct) bien toutes les langues que vous avez énumérés descendre à partir d'une origine commune pour une chose...
Edit:
En regardant plus loin en elle, ce wikipedia lien de détails plusieurs bonnes et intéressantes raisons de zéro indexation (qui ne concerne pas directement parler du pourquoi de mois sont de zéro indexés, mais je pense que c'est déjà couvertes), et cette SORTE de lien a répondu à la question avant.
Ressemble à l'opinion dominante est soit un "accident historique" ou "parce que les mois ne sont pas des nombres ne peut donc pas être comparé à jour/année de stockage" en fonction de qui vous demandez.
* Désolé, désolé, la physique!=les mathématiques de revenir à la mords-moi. Hors de repasser mes mains maintenant.