В сообществе Godot мне рассказали, что взятие значения из словаря в gdscript это медленная операция.

Обычно, взятие значения из словаря это операция за O(1) и это то, что принято называть bazingly fast. И когда тебе говорят, что это медленно, ты такой... ЧООООООО!?!?!

Дьявол, как всегда, кроется в имплементации, динамической природе gdscript и необходимости собирать StringName в динамике (ключи). Чтобы ускорить словари нужно стараться предварительно собирать StringName и кэшировать их.