My step dad was a roofer when I was growing up. He was the one that did the estimates and found the business and he had a crew of immigrants that did most of the work for him. They earned far above minimum wage. They made $15/hr, under the table, in the early 90s when minimum wage was under $5/hr. Even the grunt roofing work is semi-skilled and paying more allowed him to keep the same crew together over multiple years so he didn't have to constantly retrain. Even his supervisor role was backbreaking work that left him exhausted after 12-hour days. His crew would have found other minimum wage grunt work to do if the money wasn't good. Plus, the margins on jobs were so high that it didn't make sense to be chintzy (he'd net around $4k on a week-long job after the cost of labor and materials). But it was seasonal work so he'd only get 10-12 jobs in per year and spent the rest of the year being an artist.
I can't say how many crews are run like his was, but I also don't think it's fair to assume that all those guys are making next to nothing. The roofing season is so short and the money good enough that I'd bet that having someone you trust to move fast while maintaining quality would be worth a significant amount over minimum wage. Having worked with him on my summer breaks in high school, it took me a full season to get to the point where I was even close to keeping up with his regulars. I'd also bet the money being pretty good, not bad, is why you see groups of the same ethnicity working together since they probably recruit and train each other whenever there's a vacancy.