In Gen 1, there is a bug that reduces the accuracy of every move by 1/256. This causes moves with 100 accuracy (like Leer) to effectively have a 99.6% hit rate, making it possible for the move to miss.
Every move has an accuracy value of some number between 0 and 255 inclusive, with 255 representing a move with 100 accuracy. The reason this happens is because the game determines whether a move lands by pseudorandomly generating a number between 0 and 255 and checking if it's strictly less than the move's accuracy value, instead of less than or equal to it. This means that if it generated 255, the move will always miss because 255 is not less than 255.
It is theoretically possible that you just got horribly unlucky. Gen 1 has a lot of bugs and glitches, so it's also possible that something else was the root cause, but it's hard to tell without knowing more about the situation. If you're using a ROM hack for this challenge, that could be a factor too.
There is another separate issue with Leer where it has a 25% chance of failing if used by an opponent outside the Battle Tower, so you may notice that as well.
Source 1 / 2