One of the keys to SpaceX's cost advantage is standardization on common parts. One example is the Merlin engine, which is used on both the first and second stages of the Falcon 9 and Falcon Heavy (though a slightly different vacum optimized version on the second stages).
This is also done for fairings. Fairings are very expensive to make (around $6M). Designing the largest possible fairing to work for any possible missions will cost less than designing customized fairings for specific missions. And design time can impact launch cadence.
And building one type of large fairing for each launch probably costs less than building smaller types for various missions, even if smaller fairings require less material. Some reasons are because there are required processes, such as assembly, testing, loading, etc that are safer/more consistent and easier to optimize if they apply to the same size/design of fairing each time.
But even if the build cost is actually lower for smaller fairings, SpaceX intends to recover and re-use fairings. Again recovery benefits from a standardized design/size, not just for the recovery process (which needs space for parachutes/steering jets/etc), but for re-use. Having a small, a medium and a large fairing would mean not re-using each as often and require a higher inventory of each (what happens when you have back to back small fairing launches and not enough time to refurb/test the first fairing?). Re-using a large \$6M fairing twice as often as a small $3M fairing means the large fairing will cost less per launch.