Let's make it clear, as has been done previously, I'm sure, that the marketplace can be an effective way to make your personal morals felt. However, the stock market is not the right soapbox.
Suppose that the world can be split into two companies. Sunshine Inc. manufactures rainbows, solar panels, and organic produce. Greedy Corp. runs a bunch of casinos, distilleries, and cigarette plants. Both make one million in profit each year. Now, further assume (economists are good at assuming) that the entire world decides to vote with their dollar, and everybody, in a fit of conscience, sells their Greedy Corp. shares and invests in Sunshine Inc.
So, the price of Sunshine rockets through the roof. Sure, some of the original holders make capital gains, but we're going to look at the long run. Everyone is going to have to share that one million in profit, so divide through by the number of investors in the world, and how rich they are compared to you, and I'll be impressed if you squeeze a red cent.
Now, I have no moral conscience, and go to buy shares in Greedy Corp. Since nobody else will buy them, I can buy them all essentially for free. As the sole shareholder, I reap the full million earned each year by Greedy Corp.
So, the result of everyone on the planet playing the role of ethical investor has not only eliminated all the returns to ethical investing, but massively increased the return to being greedy and socially irresponsible. And I'm going to take my million bucks every time the world wants to be nice.
Moral is, stocks aren't a place to make your opinions felt. Vote with your wallet, not with your portfolio.