It is because Google knows what you want. But you say you don't want google.ca? Well, you're wrong. You just don't know it yet!
Ok, jokes aside. Google is using IP-location-databases to determine where you are. And from that it sees you're in Canada and redirects you to your local version of Google. It does the same in other countries.
If I enter google.com, it serves me with my local version with my countries TLD. In the grey area on the bottom of the google page, on the right side, I have an option though: "Use Google.com". That's how you can change to google.com instead of google.ca.