Adding to other answers, if you have a small launcher you can put in orbit your very own small satellite without sharing a great deal of information about it with the big rocket operator and/or the public in general.
Apparently lining up a lot of smallsats for a dedicated big rocket launch is like herding cats. Delays on any of the smallsats delay the overall launch. Hence SpaceX's recent announcement that their planned Falcon 9 dedicated smallsat launches will launch on schedule regardless of whether all the satellites are ready.
Why hasn't the small-lift launch vehicles completely replaced by the medium and heavy-lift launch vehicles?
Because small launchers can provide several things:
A small launcher is much cheaper than using a large launcher to launch a single small satellite.
a dedicated launch, instead of having to share a launch which reduces your choice of final orbits