The reason I think bans should remain private is because of a few reasons. Mainly there should not ever be a pretense that the customers should be overseeing the workers. It's simply not your place, and any reason of "To see the staff are banning people" are null and void because it's not a player's place. They are here to play, not to monitor staff.
Additionally, reading the rules should be maintained as the ultimate point. Did you log in, advertise, and then get banned because you didn't read the rules? That is nobodies fault but your own. If we want to disseminate rules more efficiently ingame, then a GUI menu should be implemented with the links to forums and a rundown on all major rules, it can even be put in the existing /help menu.
Learning timeframes of ban so you can be staff in the future is also a bogus reason, as bans should resonate from exercising common sense on the situation, rather than referencing an arbitrary time that has no nuance. Relying on ban times, in my experience, has only resulted in mechanical banning with no fore-thought.
Essentially verbal warnings, which already exist, serve the very purpose a public ban would. It tells people to knock this action off.
New players see that there are rules and they are being enforced
~ @Muunkee
I have never once come across a new player and been told "Hey I appreciate the existing rules and how you enforce them". From my experience, I would suspect new players are more interesting in learning how to play, and then playing. They don't care why or who someone is banned for.
Additionally, and most importantly, the very fact this would lead a number of people to instantly shout after a ban
"Why did you ban for X time, it shoulda been Y!!"