Niether system works perfectly because people are different and they make errors, whether they're capitalist or socialist of communist or whatever. The reason capitalism works better is simple: freedom. The reason it doesn't work perfectly is that it's comprised of people.
The reason I favor capitalism is choice. I have the choice to take on risk. I have the right to make that choice. I do not have an inherent right to other people's production. I do live in a society that creates a contract to share some production for common things (which is obviously where the debate is). I have no issue with government, under the people's authority, providing common services that we cannot do individually - such as roads, military, regulation of the rules of trade, etc. I have a big problem with any government telling me I'm entitled to someone else's rewards for their production in the name of fairness. If people share the wealth, good on them. I am not entitled to their wealth. We can agree it's a good thing to help others, but compelling people to do so by confiscation is tyranny.
BTW, one of the reasons socialism "seems" to work, or at least is hanging on in Canada and Europe is that their defense is subsidized - by us. I don't have a huge problem with that because a stable Europe and a stable group of allied countries is in our best interests.
Warren Buffet doesn't owe me a dime. Neither does anyone I don't have a contract to work for.
Capitalism is completely based on risk/reward. To those willing to risk, the potential reward (and depth of loss) is greater. That's how it should be.