Not charging for everything differs from never charging for anything. The latter is impossible unless you are independently wealthy; and even then, most open source developers take credit for their work rather than doing it anonymously. But more to the point, open source software is something you choose to provide to the general public, rather than at the request of a client.
Outside of the development community, commercial software is still profitable because most non-technical buyers assume that free-as-in-beer software is less good. Same thing with graphic design or video production. Working for free/cheap signals interest to industry peers very effectively, but people outside the peer group just see it as a price signal.
Those developers generally make a big distinction between "work I do for free because it's fun or intrinsically rewarding" (like helping a charity) and "work I do to make a living." They will try to get maximum pay for the latter, partly to enable the former.
So I think a better statement would be "if you don't ask for SUFFICIENT money for what you do SOLELY FOR PAY, then you're saying your work isn't worth much."
"Um, what?" --Every open source developer, ever.