You can be the commanding officer of a ship without holding the rank of captain. The vast majority of co's in any modern navy aren't captains. With a few exceptions, Trek overlooks this.
That's true. But I imagine Starfleet wanted at least a Captain to command the Enterprise-D which was the flagship.
Also we saw Commander Sisko being in charge of the Defiant.