RAW, the spell doesn't specify that it impedes movement. Spells that block movement do specify that little detail.
While use of words like "ram" or "has to move above obstacles" might make some think that this implies solidity, this is a quite indirect way to determine solidity, not a surefire way at all. There sentences describe the movement of the sphere itself, not the movement of creatures relative to the sphere.
Lots of other immaterial stuff can apply force. Example: Unseen Servant applies forces, is not an obstacle itself, yet cannot go through obstacles by itself. It doesn't even have a flying speed despite that spell not "specifically" stating that it does not have one.
The "specific beats general" rule doesn't mean that if something is NOT written then it means that it is allowed. Because if you go that route, you open up all kinds of weird shenanigans. If something is not written, you just go with the baseline default that makes sense. Most spells in fact are not obstacles in and of themselves, often directly apply some effect or force, and can't go through obstacles. So that is the "default".
It is a sphere made up of fire after all. Fire ain't solid. So, when you "ram" the flaming sphere, it ddescribes the fact that you throw the sphere on the creature and then it stops in the same square as the target creature: not 5 feet "before" the creature. Someone can also run through the sphere's square, and as long as they cross fast enough and don't remmain there they'll feel the heat but not actually get burned.
Not the way I do the spell in my campaign because it doesn't make sense to me that when the sphere is put on a creatre (rammed into a creature), then the damaging effect applies, but when a creature all by itself decides to ram itself through the sphere, then nothing special happens. So in my campaign anybody trying to move through has to DEX Save to avoid the fire damage. But that is a house rule.