Please note, "good" means they reduce the chance of the company getting sued.
It is convenient (i.e., easier) and simple risk aversion. In the many years I have been working in the corporate world, I have never encountered or directly heard of a non-hire lawsuit. But, this is talked about as if it is a common occurrence.
Sometimes its pretty clear if you are not a good match, but sometimes its really not, and it seems like it would be best for both parties if certain kind of feedback could be provided, e.g. you were close, please consider applying in a year or two with some more experience, or we have decided not to hire anybody due to a later hiring freeze, but otherwise we would hire you - or, you are a unlikely to ever work in this industry, don't waste anybody's time with further applications (maybe some suggestions for better fits).
In general, more information leads to more efficient markets benefits all participants.
This. I would gladly tick the check box for some honest feedback. I personally think that leaving candidates with a generic response is unprofessional and says plenty about the company.
It's also worth keeping in mind that the process for many companies is very random. At my old company, I have recommended a few very qualified candidates, only for their application to get stuck in HR limbo due to budgets or politics. And on the other side of that, every now and then we would open the floodgates, and any one with a pulse would get in. It was really frustrating, but that's just how it works.
So, you aren't signing away your legal rights in exchange for a chance at the job, you get that either way. You are agreeing not to exercise some legal rights in exchange for feedback, not in exchange for your application to be considered.
Imagine you check the box, you don't get the job, and your feedback turns out to be "You're a man and we don't like to hire men." You have no recourse because you agreed not to sue.
You can argue that that's obviously illegal hiring criteria and you should be able to sue anyway, but then you're back to square one.
For programming interviews, the tech interviewer has to tell the hiring manager, then the manager tells HR/recruiting, and then recruiting shares the reason with the candidate. I'm not trying to justify the morality of no feedback, as I personally think all interviewed candidates deserve an answer with a reasonable explanation, but when a client says "not a fit" I know it's because they either don't want to spend the time or they don't want to say the reason (usually would be something personal - how do you say "we don't like you" in a non-offensive way?).
Another reason for limited feedback is something you might not realize unless you have been in a position to deliver feedback thousands of times - when you give the reasons you didn't hire someone, they often disagree and may become argumentative. This takes up even more time and becomes a potential PR issue. One disgruntled applicant tells a friend that $COMPANY$ doesn't have a fair hiring process, and word starts to travel. Generic answers like "not a fit" are not helpful, but they are difficult to argue and aren't likely to turn an applicant into someone spreading negative info about your hiring practices.
I still genuinely believe that being as honest as possible is the best way to handle it, and my clients that give actionable feedback often see rejected applicants applying again once they gain more experience.