Wie der Duden-Link in Kevins Antwort ausführt, wird das einzelne "O" meist in Verbindung mit anderen Wörtern geschrieben. Der Ursprung könnte aus Anrufungen wie "O Herr" oder "O Jesu" stammen, wo das "O" als Zusatz zum lateinischen Vokativ Verwendung fand und in der Übersetzung überlebte.
Diese Ausdrücke werden auch oft als Ausruf der Überraschung verwendet. Diesen Ausruf verkürzte man dann auf ein einfaches "O". Und da einbuchstabige Wörter im Deutschen nicht gebräuchlich sind, wurde daraus "Oh".
Man könnte damit einen Bedeutungsunterschied konstruieren, daß "O Gott" bei der Anrufung/beim Gebet verwendet wird und "Oh Gott" beim überraschten Ausruf. Ich halte diese Unterscheidung aber nicht für weitläufig bekannt und kenne niemanden, der sie verwendet.
Für eine ausführliche Behandlung des Themas empfehle ich den Belles-Lettres-Artikel.