The English language is filled with these differences, but is there a reason for it?
In addition to the other explanation the modern English language consists of words from 3 different languages that were wildly mixed. That’s why moustache and headache both end on ‘ache’ but sound completely different. Same goes for words like though and tough. Depending on the language the word was coming from the pronounciation of the same string of letters can change greatly.
These words share roughly the same linguistic origin, the difference in pronunciation comes from the phoneme in front of the vowel. Wh and Th are distinct phonemes, as in your mouth and tongue form different shapes to pronounce them.
There are lots of reasons why letters are pronounced differently, but with a vowel it’s because vowels get pronounced differently.
All vowels have at least two pronunciations: a long sound and a short sound. A long vowel is the name of the vowel, like ay for a.