Варианты 1 и 2 ссылаются на вполне конкретный класс dict. Когда typing только ввели, стандартынй dict не поддерживал такую запись, поэтому создали псевдоним typing.Dict. Потом к этому типу (а также к tuple и list) прикрутили возможность вести себя как генерик. Сейчас Dict, List и Tuple потихоньку планируют выводить из употребления. Они deprecated начиная с питона 3.9.
Вариант 3 - это любой объект, который ведёт себя как словарь, не обязательно именно dict. Но с 3.9 это алиас для collections.abc.Mapping, по той же самой причине.
Так что вариант 2 и 3 имеет смысл, только если тебе нужно поддерживать питон 3.8 и младше.
Выбор между вариантом dict и collections.abc.Mapping зависит от того, что именно тебе нужно - вот прямо dict, или просто что-то словареподобное. См. список методов Mapping
тут.