Why should I take on more work and subcontract? Isn't society better off if I leave the work to someone else and cut myself out as a middle man? Under what circumstances is it the right thing to do?
Middlemen provide a service like finding higher paying clients. Finding the best talented contractors. The best ones also maintain long term relationships. I don't know where you got the idea that middlemen are bad for society. That's not how it works in tech anyhow.
There are people who would tell you that society would be better off if you lived in a shelter and didn't own any personal belongings beyond your shoes and 1 pair of clothes. Why don't you listen to them? Because you have your own life GOALS that probably aren't compatible with their idealism. You need to ask yourself what your goals are and be convinced that your goals matter.
Also, you feel like you have more work than you can handle right now: great. And for all you know, 2 months from now all of your current clients could suddenly not want to hire/pay. Then you need to spend time finding more clients. That won't always be easy. You have to anticipate those lean times and not get content with what you have. I mean if you want to build a business. Having somebody else doing the work for you frees up your time to find more clients, for one thing.
What can I offer to someone who I'm subcontracting to and why will they feel fine with the knowledge that I'm taking the difference? I've heard the argument "because I take the risk" or "because I speak to the client". Although I'm quite certain if someone tried to subcontract me on these bases, I'd probably just be thinking "fine, I can take the risk and talk to the client".
When you work your own business long enough you see that a lot of time goes to just finding new clients. Getting connections to good clients and becoming their trusted provider isn't easy. The more you build your reputation & connections it becomes easier. The point is that not everyone is capable of or wants to take the time & energy to build that good client list. They just want to get paid. You can provide them with cash. I assure you that there's lots of people with skills who appreciate getting paid and not having to worry about finding clients, maintaining long term client relationships, networking and so on.
Wouldn't clients feel like they are paying too much if they know I am subcontracting to someone and taking some difference? Maybe I can say "well I'm managing them". But the client might think "yeah... manage... you're just telling them what I told you"
If you have bad ethics and/or poor customer relationship skills then yes. If you have good ethics you value your reputation so highly that 1.) you make sure your subcontractor is very good, 2.) if your side ever drops the ball you eat the costs, 3.) customer satisfaction is a high priority. And you wouldn't hire an unknown person to work with an important client. You'd hire someone vouched for by someone you know and trust or you would test the new person out on a small project and over time you give them bigger projects to build your confidence in them.
So that's the gist.