What are some good open-source alternatives to Slack and why don't people use them?
People don't use the alternatives to Slack because they're not as good as Slack, on various axes, is the short version. Slack has made themself hard to compete with.
Self-hosting, unlimited history, unlimited team size. They have great deployment docs for various methods and it was pretty easy for me to containerize it for docker.
It has a slack compatible webhook integration so many slack integrations will "just work" with mattermost, if the integration will allow you to specify your own url.