a) At a personal level, it forces the user to make choices. Making choices is exhausting. Should I donate $1, $10, or $100? Should I donate based on my perception of how much each project lacks funds, based on how much value I extract out of the software -which is not easy to quantify anyway- or just send an amount that I wouldn't miss? Should I donate one-time and forget about it or set a recurring donation? If recurring, shouldn't I monitor the project's development to decide if a recurring donation should continue? Then would it not be fair to hunt down every single free software project I'm using and evaluate its needs and value in order to donate to that as well?
Personally I admit that I rarely donate to free projects as an individual, unless they explicitly ask for a fixed amount that I find reasonable, because I dread the process of such decisions.
2) At a business level, usually there is a complete detachment between the value drawn out of a piece of a free software and the process of donations. The company is there to maximize its profits and minimize its costs, donations exist at a separate sphere that has more to do with financial/tax or PR incentives than the intrinsic value of the free software project, so all donations tend to get send to recognized charity organizations.
Very often the people who understand the value that a piece of free software brings to the business, have the right mindset and want to donate, but there is no process to make it easy for them to do so (it would be awkward to put a purchase order to the finance department for a donation).
For that reason, I would encourage every free software project that cares about funding to sell something at a fixed price, that can pass for a standard purchase in the eyes of a non-technical person -i.e. call it support/maintenance plan, or premium forum access. Even if in reality it adds nothing to the value of the software, it makes it easy for IT departments to support projects they are using that they would otherwise not be able to. Speaking from experience, it's very frustrating to see how much a company spends for bullshit and not be able to donate even a small amount to projects that bring much higher value to the company.