Back when we were looking for developers, I did my best to contact everyone we decided not to hire. There was one guy that simply would not accept my rejection and demanded that I explain why we felt he wasn't a good match.
I got rid of him eventually, but I can easily see such a conversation ending in lawsuit-enabling remarks by me. Hiring, especially non-hiring, is a lot about gut feelings, and those might be tricky to explain legally.
So I would say it's definitely safer to keep quiet.
When I have been hiring, I make sure to inform candidates that aren't hired. If I have been far enough with them that we actually met, I have so far always offered to explain why they weren't picked, over the phone. Not only do I think it's a decent thing to do, but it also forces me to be very conscious about what I'm selecting for, since I know I may have to explain it later.
I've had some awkward conversations as a result of this, but nothing I regret.
I'm fully aware that this doesn't scale well, but it works fine for me.
I got rid of him eventually, but I can easily see such a conversation ending in lawsuit-enabling remarks by me. Hiring, especially non-hiring, is a lot about gut feelings, and those might be tricky to explain legally.
So I would say it's definitely safer to keep quiet.