Why do such words as hour and honest have a silent h? Is it because they would be difficult to pronounce with an audible h?
H is often silent in English for different reasons according to the derivation of the word concerned (Hebrew messiah and Greek rhapsody) or by elision (shepherd, exhaust) and so on. The words you mention are derived from French. English took over the French pronunciation as well as the word. But in other similar words we have come to pronounce the h over the centuries: horrible, hospital, host, hotel, human, humour. And in yet other cases we have added an h where French has none: hermit, hostage.