SpaceX absolutely does do better, but it's still sole source. Yeah, we were sole source back when only shuttles were really doing missions, too. When everything got grounded after Columbia, this caused a lot of problems because of resupply issues. If a similar thing happens with SpaceX, we might see a repeat of that. Better to have a few options on the table.
This isn't so much an argument for specifically the USG doing it, as it is for more replacement options in general. The "too many cooks in the kitchen" problem might well recur with a USG shuttle replacement, and in any case, NASA does not enjoy the funding it used to.