They're strong against the Psychic type because of the fears, and the fears can affect one's rationality and concentration.
They're strong against the Ghost type because evil can damage the soul.
They're weak against the Fighting type because philosophically, a warrior must overcome their fears - represented by Dark. The Fighting type also supposedly represents justice, which opposes evil, also represented by Dark types.
They're weak against the Bug type because bugs operate well in darkness.
They're weak against the Fairy type because fairies represent light and the darkness disappears with light. Furthermore, light is a metaphor for goodness, which always triumphs over evil in fiction.
If a Dual-type Pokémon is both Dark and Ghost type, both types cancel out each other's weaknesses with their resistances, leaving Pokémon like Spiritomb and Sableye with no weakness apart from Fairy.
So far this is the only Pokémon type not to be used in a Pokémon Gym.
The Dark type has the same efficacies over other types as the Ghost type.