If you have ever 'tested' a starter motor on the garage floor, using jumper cables, you will know how much starter motor armatures kick when power is applied.
The armature spins from zero to full rpm almost instantaneously. The Bendix drive uses the inertia of the Bendix to keep the drive still while the armature spins up. The drive staying still causes it to climb a ramp internally, and force the gear against the flywheel teeth. When it spins, and doesn't engage, it can be a failing Bendix(one way clutch built internally) or lowered voltage/amperage that fails to accelerate the armature quickly enough, OR there is grease/dirt/etc on the Bendix assembly/ramp making it stick to the armature instead of spinning and moving up the ramp.
If the Bendix gear can be spun in both directions without causing the armature to turn, the internal one-way(sprag) clutch has failed, and the Bendix needs to be replaced.
tom