Дефис не разрешен в синтаксисе импорта. В случае 'neat-python' пакет просто устанавливается как 'neat':
import neat
Вы можете проверить это самостоятельно, заглянув в каталог вашего сайта-пакетов (для меня это /usr/local/lib/python3.7/site-packages
).
Редактировать: и да, это разрешено для пакетов PyPI, и это может раздражать. Обычно реальное имя пакета будет очень похожим вариантом имени, используемого для установки из PyPI.