Trick-or-Treat adds the Ghost type to the target, in addition to the Pokémon's original type(s). If it is used against a dual-type Pokémon, that Pokémon will have three types at once. If the target already has an additional type added to it by Forest's Curse, that type is replaced with the Ghost type. Trick-or-Treat will fail if the target Pokémon is already Ghost-type.
Using Trick-or-Treat on a pure Normal-type or a Normal/Psychic-type Pokémon is the only way for a Pokémon to have a sole weakness to the Dark type.
Using Trick-or-Treat on a Normal/Fairy-type Pokémon is the only way for a Pokémon to have a sole weakness to the Steel type.
Unlike Forest's Curse, a Pokémon affected by this move cannot have an 8× weakness, except in Inverse Battles (where, for example, a Poison/Flying Pokémon would have an 8x weakness to Fighting-type), as each of the two types the Ghost type is weak to is strong against only one other type.