Non profits have an ugly side as well. They generate billions of dollars annually and control trillions in assets. That kind of money attracts some calculating manipulators. Preachers who beg the poor to donate to end hunger as they broadcast from auditoriums and mansions, closing the program with a final image of the Bentley they own. Or educational programs that compensate their boards ridiculous things to simply show up.
Then there is companies who are for profit but have a goal to help a particular cause. They donate a portion of their proceeds to this cause, often times their own causes. This is the more interesting to me because they are using capitalism for a good cause, they could easily pocket that money, increase their net worth and no one would really blame them. But they don't.
Then other places use causes as a means to attract business only donating minimally to satisfy rather than because they believe in the cause. They want the write off or the media attention or to try and control where their money is spent so they can get their names on libraries or new buildings. Kind of disgusting if you ask me.
There is not a right or wrong answer here. Socially conscious companies make huge impacts in our world, so do nonprofits. There is irresponsibility and greed in both sectors.
My suggestion, look into and scrutinize both. Send your money and time to the ones that are responsible, and by responsible I mean those that aren't buying themselves limo and town car services.