If I have $100 to pay someone in the US, about 25% of that will go to "fringe" (taxes, health insurance, unemployment/worker's comp, 401k match, PTO/sick, etc) and that percentage is probably higher for lower-paid employees. So, start with $100, fringe expenses take $25-30, agency middleman profit/overhead/flex-risk takes maybe 20% ($20), and the end worker gets $50-55 out of the $100 the original company is paying for them.
That the end worker is getting ~50% isn't that crazy to me. If directly employed, they'd be getting only about ~65-70%. (which is less than the direct fringe ratio because someone has to fade the PTO/sick/hiring lag flex to ensure the trash cans get emptied consistently and the agency is doing that in the other case).