As someone who has worked for an unpaid internship, no. But there should be heavy restrictions on them, and I'm not sure that it could be regulated to the extent that would make it ok in my book.
Some context. A few winters back, I asked my uncle if there was any way I could learn soldering from him. It was a useful skill and I was wanting to improve my skill base. He said he didn't really have the time to teach me but if I wanted he could talk to his company who could bring me on as an paid intern for a few weeks (the company was doing not so great and couldn't pay me). I agreed and started.
Mostly he just taught me a bunch of useful skills and put me on different tasks that I could take on with what I had learned. I worked ~6 hours a day 5 days a week for about 3-4 weeks, and had a bunch of fun tackling different projects. I got to put it on my resume and it was pretty chill. I wasn't held to anywhere near the standards of other paid employees (I could leave early or take a day off if I had so wanted, for instance) but I worked really hard anyhow cause it was so fun. I ended up getting a $100 target gift card and two free lunches at restaurants out of it. Everyone at the company was so grateful for what I helped them with and they were all really nice people.
I know this is far from the norm, and that's why I'm generally against unpaid internships. But something like what I did should be ok.
As a rule (in my book):
-If you're working one on one with an employee of a company, learning valuable skills while helping out the company out a bit, that's totally fine.
-If you're put on menial tasks, and asked to deliver coffee, that shit better be payed.
I know most internships that are unpayed fall under the latter, and that's awful.