I think it’s because of supply and demand in addition to value. A manual laborer, even a very skilled one, is limited by their own output on how much value they can create. A software engineer creates outputs that can generate many multiples of their compensation for doing so.