This one can be explained by looking at the type chart and the moves of the Dark type. Unlike Ghost, Dark has a lot of incredibly useful moves- Dark Pulse can cause Flinching, Sucker Punch has priority, Crunch can lower Defense, Night Slash has increased critical high ratio, Pusuit deals double damage of you are switching, Foul Play uses the target’s Attack stat, and Knock Off is 98 BP if the target has a removable item. The big selling point of the Dark type moves is that they have very strong secondary effects that make them worth running even if they don’t provide any useful coverage. For example Pokémon like Clefable and Toxapex who would never run Dark type moves, run Knock Off just to punish a Switch in. That’s how good Knock Off is. Not to mention that unlike Ghost, Dark has no immunities, so it’s very spammable.Since we're talking about our issues with the Fairy-Type Pokémon (or have done since the last time I checked this thread, anyway)... my unpopular opinion is that Ghost-Type should be weak to it instead of Dark-Type.
I truly believe that the only reason why Dark- is weak to Fairy-Type is so that Sableye and Spiritomb acquired a weakness, but when looking at those two types I see just about no justification why Dark-Type would be chosen as the weakness to Fairy-Type. The only justification I can really think of is that Dark-Type Pokémon get their power from being able to think maliciously, and a pixie buzzing around your face is distracting. Which sounds really weak as logic, but then again I'm pretty sure that's why Bug-Type is super effective on Dark-Type.
On the other hand, though, Ghost- and Fairy-Type Pokémon not having a type chart interaction is stranger than anything else. They're the two "ethereal" types, harnessing powers from aspects of the universe that are unavailable to us. Ghosts are tied to the natural world, not being able to pass into the afterlife due to an attachment to this existence, while Fairy-Types are the channelers of the natural world who absorb its energy for healing and offence. I think it makes a lot of sense here for Fairy- to be super effective on Ghost-Type as it has superior control over the power source of Ghost-Type Pokémon, which is the same justification for why it's super effective against Dragon-Type Pokémon.
If anything, Fairy- and Dark-Type should probably resist each other considering they're somewhat antithetical. Fairy-Type is the closest thing we have to a devoted healing type, and Dark-Type's maliciousness is the polar opposite to that. Good and evil usually neutralise each other, so both resisting each other would've been cool. Of course, this would have precluded Fairy-Type from being able to give Dark/Ghost Pokémon a weakness, but I never saw it as a huge problem that needed addressing to start with.
And it we’re going by the current type chart in which Steel no longer resists Dark/Ghost, the only types that would resist would be Dark itself and Fighting not counting Fairy. The former can’t do much without coverage moves or secondary STAB, so that makes Fighting the only type that can switch in and hit it back super effectively. Even with Fairy though, most Fairy types will think twice about switching into a Knock Off, since losing a item is a huge opportunity cost despite resisting the attack.
An Example would be Yveltal. One reason why Yveltal is so hard to switch into is because of its STAB combination. Not only does it get a free LO for its Dark type moves, but it also has few resists when you get down to it: Dark: Most Dark types struggle do much back to Yveltal. Fighting: Get obliterated by Flying STAB. This makes Fairy the only type that can resist Yveltal and come in threaten super effectively consistently.
If were to make Fairy weak to Ghost, I’d suggest keeping Steel’s resistance to Dark to prevent it from being to good of an offensive type.