I worked every summer since I was 13, and 16ish to 18 also during the school year now and then (17/18 was fairly lucky early it was really early 2000's and I mastered PHP rather well so made actually decent money building websites when web2.0, CMS and dynamic content were still meaningful buzzwords).
The poor on the otherhand will go to work over all else, and they'll never have their parents give them a choice between going to work next month or going on vacation in Hawaii.
They offer X hours per week, and constantly juggle the scheduling to suit themselves so workers don't neccesarily know when they will be called in. They do things like require long hours on one day (e.g. a 12 hour day), then cut short the hours on the next day to avoid the worker being classified as full-time or overtime pay.
It's these kind of annoyances that a middle-class kid will just ignore. They have other obligations and can get away with leaving money on the table if necessary. They don't really care if they work 25 hours a week or 20 hours. To a poor worker though those 5 hours can make or break the budget, so they'll come work a 12 hour shift if the boss requires it instead of dropping the whole day and thus getting less hours per week.
In my original comment, I was going to post "perception is reality" because perception, default thinking, and other heuristics underpin so much of what constitutes discrimination.
This is, of course, absolutely unfair, but most of us at least have a chance to shape how others perceive us. In the end, it's surprising how much the "little, superficial" things matter in that respect.
In urban areas, where access to transportation and availability of jobs is better, this is really the crux of the issue. Employers (often unfairly) view middle class kids as more reliable. So even if they think working class kids will work harder (another common view in my experience), they see the middle class teenagers as less of a risk.