Это просто выбор дизайна. За этим нет особой причины.
Запись def fn(x: None) -> None
более краткая, чем def fn(x: NoneType) -> NoneType
(и ИМХО также более понятная).
Это также согласуется с другими подсказками типов: List
, Dict
, et c, которые представляют собой одно слово (такое же, как у соответствующей встроенной функции) с заглавной первой буквой.