It could be the flywheel ring teeth are worn, or that the starter drive is kinda sticky and isn't fully sliding all the way to engage the flywheel teeth.
You could try removing the starter, cleaning it up with some brake cleaner, lightly lubing the shaft that the starter gear slides on and seeing if that fixes the problem. If it doesn't, you'll need to look at the flywheel ring teeth.