What they are is ignorant, which is not the same thing.
The solution to this problem is to have a very clear indicator on each channel that it's public or private. If you really want to, make it a link that explains what that means.
And you're done.
This is a problem in the same way that copy/paste is a problem. There are well-known solutions, it's just modern software that went to crap, not the users.
This is exactly what used to happen on “legacy” forums, too. I’m all for reasonable guardrails[1] but at some point you have to just let people take some individual responsibility.
1. Alert users who are posting publicly, allow them to disable posting to public channels in their account settings, etc.
I find it difficult to believe that people choose Discord over eg Reddit because they value privacy - you can create a private subreddit much more easily than you can create a new Discord instance. People choose Discord because they want live chat that works.
Anyone who is consciously choosing Discord for privacy reasons shouldn’t have a problem policing themselves when it comes to public vs. private channels, no?