Все дело в работе проброшенной внутрь докера папки (примонтированной фс внутри контейнера). Обратите внимание, если скопировать файлы проекта в соседнюю папку внутри контейнера (например, если маунт идет в /app, то cp -r /app /app2) и там запустить npm install (или что угодно), то это произойдет сопоставимо быстро, как на родной системе (упрется в ограничение ресурсов докера). Решения лично у меня нет, но причина ясна.