Note:
It's probably true that majority of functions can be #[must_use]. However, that alone doesn't imply that #[must_use] is a better default -- the cost of mistake needs to be taken into account.
In particular, cost of missing #[must_use] is low -- the attribute is actually important only for a small fraction of functions, and it's easy to add it manually for them. For majority of the functions which are not confusable, utility of #[must_use] is low.
On the other hand, cost of missing #[discardable] is high. Today we derive a lot of value from almost all warning being true warnings, actionable and useful. Making #[must_use] default, we'll add an unbounded number of false warnings (new written code which forgets about #[discardable] adds false warnings). As a maximally pessimistic scenario, error handling today relies on #[must_use]; let _ = is rare and stands out, and allows you to quickly notice important places where errors are silent. In the #[discardable] world, let _ = might become frequent enough to not make it jump out at you, reducing error handling reliability.
To clarify, I am not arguing one way or another, I don't know how to weigh the tradeoff. I do want to point out that it is not which one is more common, but which one is more common * cost of wrong classification.