For instance, democracies suck when voting on a question of fact. If something is better and cheaper
Neither of those are fact. "Better" is a purely subjective term, and there is no evidence that a government-run anything will be automatically cheaper. When you say "cheaper", you mean it may cost direct users less. That's not the total cost of the product, however. A "company" that can simply dip its hand into the general fund of a city when revenues don't cover expenses isn't worried too much about keeping costs down and those costs wind up coming from people who have no desire to be subscribers. A government-run anything is typically run by civil servants covered by a union, so they have no reason to care about the service they provide and have a union driving up the costs of their employment. (In our fair town, the largest cost increase in government is the increase in cost of union employees, most specifically for their pension and healthcare.)
The fact that this is all taxpayer supported means you lose choice. If you think having a choice between several commercial ISPs is too little choice, then consider that every taxpayer in that city will be an involuntary subscriber to what will probably become the defacto monopoly. If they don't manage to drive all the other players out by being able to undercut the prices, then the prices for all the others will have to go up to cover the fixed costs spread over fewer subscribers. (Do you see the parallel to the school system here? I do. You want to send your kids to a private school for a better education? You get to pay twice.)
I think less choice and forced participation is not better. I think having to get service from someone who doesn't really care is not better, especially when their supervisor will also be a civil servant who doesn't have to care. Example? I had a water leak. I got my bill and it said I had consumed some ridiculous amount of water. I did the calculations -- the volume of water they said I used would have covered my property to a depth of about a foot. It would have required a ridiculous flow. I got to fill out a report, they came out to calibrate my meter, and I ... heard nothing back ever. That's a government-run utility. Nobody cared because they didn't have to. I can't vote them out, they can't get fired, and I can't get service from anyone else.
Here in Oregon we've just lived through the Cover Oregon fiasco. A government-run website that was supposed to allow people to sign up for health insurance. It cost millions of dollars yet never managed to allow people to sign up for health insurance. You could download the forms, fill them in, then talk to an agent to find out what it would cost, but you couldn't sign up online. They could tell you the "partners" you could talk to -- mine was a three hour drive away in another state! They dumped a lot of money into cute jingles and ads months before the site was supposed to go online, but couldn't manage to get the job done. Better? Cheaper? Right.
Yes, democracy sucks. But as someone once said, it sucks less than everything else. The point I made, however, is that everyone is assuming that the voters were coerced into voting against their best interests, and that is not a fact in evidence.
why shouldn't the government supply it?
Because the voters of those cities said they didn't want the government supplying it.
Here's a point I haven't seen anyone raise. When your ISP is managed by the same government that manages the police department, where do you think your right to privacy winds up? In the hands of someone who likely belongs to the same union that the police clerical staff belong to, and are probably on the same bowling team. And their paychecks come from the same mayor's office.