One of the things you must understand is that a union contract applies to all employees. That is, if the union negotiates a particular wage, or gets certain benefits, every employee gets those benefits whether or not they’re a member of the union.
To the union (and it’s members) non-union members are simply getting a free ride. They pay no dues, don’t put their career on the line, yet get all of the benefits that the union negotiates. And, that even includes the right to union representation in disciplinary hearings.
Looking at it this way, you can see why non-union people may be forced to help pay union dues. They are getting all the costly benefits of union representation, so why not pay for them?
You might not agree with this sentiment. In fact, I am not in 100% agreement in it myself. You may have to pay dues, but you might not be able to actually join the union. And, if there is a strike which includes a lockout (which affects non-union employees), those non-union employees don’t get union compensation.
About 20 years ago, we looked into unionizing, but decided it wasn’t for us developers. Unions are about keeping things the same. You don’t do that because your job and rank doesn’t allow you to do that.
Basically, you’re suppose to keep your head down, and do your job in a half-hearted manner and you’ll be able to work there for 20 years. That might work our well for assembly line workers, but it doesn’t really appeal to developers who want to learn as many skills as possible and tend to hop from company to company.