GPL advocates say it's so that your code isn't exploited by corporations.
But I'd say that choosing GPL means it's more important to you that your code "is not exploited by corporations" than that it can be used for good by people with commercial interests.
Those two things do not have to be synonyms. I'd much rather allow the second if it means tolerating the first.
(Edit: Seeing the downvotes, I'd be genuinely interested in counter-arguments or thoughts on this)
(Edit 2: Just because it keeps coming up, let me make absolutely clear that I do NOT in any way think GPL might never be a valid choice, nor that anyone, myself included, should feel "entitled" to "free as in *.*" code.)