Several observations:
1. You're supposed to read them with the model name. So "a Post belongs_to an User" and "an User has_many Subscriptions". These two makes a lot of sense most of the time and reads very naturally, which seems consistent among the nicer part of Ruby/Rails syntax (an
object.is_a? type, do xyz unless condition.)
2. Granted, has_and_belongs_to_many probably makes less sense if you look at that on its own. But given the two names we have above it is very easy to understand what this means. has_many is the "n" side of a 1-n, and belongs_to is the "1" side, so has_and_belongs_to_many naturally means the "n" side of n-n. And really, "a User has_and_belongs_to_many Groups" is not really so bad.
3. This has been around for as long as I could tell. It predates the first public commit on svn and the rails website. So it's quite likely that "discussions" doesn't even apply here as it probably existed when Rails is still DHH's pet project.
4. Naming is hard. It is one of those things where you just have to make some decision and then move on to other more important things in life.