What does the alternative look like? A contract for 10 rides? A contract for one week at a time? What if the driver wants to serve one ride, and then never again: what contract models allow that single ride to fulfill a "contract"?
This is the indie version of being salaried. Very common among software engineers, for example.
If a contractor had a contract to accept or decline every jira ticket (although I don’t see anyone ever forming that contract), if they declines too many tickets they would no longer have the option to pick.
Most customers will search for a range of rating + price - so the market can regulate itself. I mean we accept amazon displaying user ratings - so I don't know why this won't work.