There are lots of Pokemon that can't learn moves they should be able to learn. If you want to know the real reason, the easiest way is to write a letter, translate it to Japanese, and sent it to Game Freak. That being said, my best guess is that drain punch was never meant to be a common move, so they randomly selected a few Pokemon to be able to learn it.