This site said that vital throw doesn't miss unless a Pokemon uses fly or bounce. But when my fearow used fly the opponent (machoke) used vital throw and it hit my fearow. Why?
Nah, it doesn't hit Pokemon using Fly. Probably just a minor bug, you can check Bulba's glitch page for whatever gen you are playing if you want to.
Source
Quite simply the machoke had the ability No Guard