Это происходит из-за того, как npm / yarn находит исполняемые файлы. Это называется режимом работы, и в основном это то, как эти менеджеры пакетов разрешают и выполняют модули.
Хотя оба ведут себя по-разному, основная операция по-прежнему схожа. Есть два режима: локальный и глобальный. менеджер пакетов сначала пытается разрешить модуль в локальном режиме; это из каталога, в котором вы запускаете скрипт. Если он не нашел его, он пытается разрешить его из глобальной области.
Итак, чтобы ответить на ваш вопрос, yarn выполнить файл из глобальной области.
Как узел разрешает модули Node.js документы
Проблема node_modules Документы пряжи