It's the same with Uber. During a rainy day rush-hour there are rarely any medallion cabs available, so Uber created a way to get transportation on those days (surge pricing) that incentiveizes drivers to work during those times.
So normal (expected) peaks and troughs in utilization result in a price signal that reflects demand on a much more granular time scale than simply a full time or part time worker with a schedule planned months in advance.
There are two ways to solve this, and Instacart and Uber are both following the approach that is more economically sound -- pass the actual price signals to would-be workers, so that they can self-select in an optimizing way.
Nearly ever Uber driver I talk to is very pleased to be able to make the money on his/her terms, even if it's not great money, or if it's not as good as it used to be.
If we create an old-fashioned, industrial-era labor market overlay for the gig economy, all we'll accomplish is taking away some good employment options for those who need them most.
All of the "perks" of the industrial-era labor movement are geared at a specific labor/employer dynamic. Uber and Instacart are shifting that dynamic and doing the work of matching supply and demand to make work available that was not available before.
We must adjust our view of what a "good" and "fair" job is, when we consider that without the matching mechanism these jobs would not exist. Let's not kill them off just because someone exploited a loophole about ordering massive size cases of water.
Ultimately I think the ideal version of "uber for everything" is a worker-owned cooperative, but until VC gets tired of helping to prove out the model, such cooperatives are at a disadvantage. That is a temporary disadvantage. Let's not hamstring the cooperatives before they can even launch!