Benefit is in the eye of the beholder. Non-members may not actually be benefiting if the results are not really what they want.
Like anything else, you can run a union poorly. Sometimes they don't actually achieve anything in their barganing. No one is going to be enthused about paying for a non-existant benefit.
If they could demand a fee, anyone could claim to be negotiating on behalf of you, and demand a fee as obviously you need them