The lyrics are not, “Oh, Canada!” They are “O Canada.”
In fairness, the anthem changes so often, who can keep up?
“O” means that you are addressing the subject of the sentence
More specifically, it means you are addressing the subject with love (or similar emotion). Which is rather nonsensical when addressing an inanimate concept that cannot feel love. Funny quips about marriage aside, "O wife" works. "O Canada" does not.
"Oh, Canada" fits better, if only slightly. "Oh" is often used to express disappointment. To paraphrase: "Oh, Canada. We try to be good citizens, but all we get in return is unaffordable land. My god, this land should be glorious and free!"