Add to this that accurately rating employee performance is very difficult, and you get a huge disconnect between effort and reward. What this means it that employees will seek to game the system by identifying activities that give them a high gain in "review score" for the least effort. This leads to rent seeking, politics, stealing credit, and other such activities. Not everyone plays this game, but those that don't are at a huge disadvantage. I've seen people get the same performance rating where one of them did literally 5x the work of the other, just because of other factors.
Bonuses can only work when they are given soon after the work you do and are (at least somewhat) objectively-measurable. For example, sales commissions work well. I think signing bonuses are also pretty effective at luring a job candidate when they have multiple offers, because they get the money right away. But that's sort of a different scenario.