Presumably a programming error on showdown, maybe a fringe case where only 1 pokemon remains on each team and they both use Protect, so the pokemon with the slower speed stat has 50% chance to fail, because it's "already been used" this turn.
Just a guess though, I can't see any real reason why it should have failed.