It's a legitimate exchange of services for something of perceived value to the intern. They perceive the value they are getting from the internship program as well worth the time and labor they are providing to the company. Nobody is forced into "free labor." It's purely voluntary.
Many colleges offer course credit for internships (this has monetary value to the student). Many companies offer incentives such as permanent employment for stellar interns. Regardless, those who show up and do great work are usually rewarded with a network of contacts, personal referrals, industry experience and other things that can help move them to the top of the job pile when they graduate and actually go out looking for full-time employment.
All other things being equal, as an employer, I'll hire the candidate who has the experience over the one who doesn't. I'll hire the candidate who's desire to work in this field is so great, they'd gladly give up a summer to work for a company without pay because the VALUE of that experience is greater to them than any minimum wage job they could get paid for. If they are excited about working in the industry without pay, think of how much more likely they are to value the opportunity when they get a paycheck.