Why do you say an hour when h is not a vowel?

An hour is proper grammar. Since the "H" is silent, the emphasis is on the "O" which is a vowel ... "AN" would be used in front of any word beginning with a vowel.
One says an hour. It is both common and correct. Hour, along with other words beginning with h which have come from French, like 'honest', have a silent letter h. "An" is used with nouns which begin with a vowel sound, not just with a vowel, so a noun which begins with a silent consonant (which would pretty much have to be H) also would use "an."