Pretty much this.
I worked for a silver service agency as a student back in the early 90s, and it was a great way to earn whilst studying. I was also an adjunct lecturer for a while in the 00s, which was essentially zero hours and I would say more exploitative than the student gigs - universities take the mickey.
The idea of zero hours is actually good. It is just that the power imbalance is too far in favour of the employers. So rather than abolishing them, they should look instead to regulate how companies use them. For example, there could be contracts to ensure employers have to give sufficient notice of when they do or don't need you; perhaps even retention contracts, holiday/sickness pay as part of the hourly rate etc. Indeed, these are some of the things the universities union have been fighting for in the current dispute with universities.
Probably if you work over 20 hours in a month for two months running there should be a mandatory contract offer or something. The potential employee doesn't have to accept but can.