'Honest' is usually pronounced without the 'h' being sounded, which is why 'an' is used instead of 'a'. Also 'heir', 'hour' and 'honour'. But words like 'horse' and 'hair' keep the 'h' sound and use 'a'.
'An' is also often used in front of some words where the 'h' is sounded (OED lists 'hotel', 'horrific' and 'historic') - these were historically pronounced without the 'h' being sounded, but now no longer are, so using 'an' is an unnecessary but common survival.
Because the h is silent the word effectively starts with a vowel.
You will sometimes see in older literature 'an hotel', suggesting the word has changed over the years so the h is now pronounced. I hope (ope?) we don't see the same thing happen (appen?) to honest! (HHHHHonest)