yarn の v2 以降で pnp を使うときの問題です
berry はただでさえ使いづらいところが多いのに これのせいで特定の用途の場合は yarn v1 を使うようにしてます

適当に pnp のプロジェクトを作って パッケージを入れてそれを使うようにします

yarn init -2
yarn add dayjs

package.json はこんな感じです

{
"name": "pkg",
"packageManager": "yarn@4.1.1",
"dependencies": {
"dayjs": "^1.11.10"
},
"type": "module"
}

[index.js]
import dayjs from "dayjs"

console.log(dayjs().format("YYYY-MM-DD"))

package.json のあるフォルダで

yarn node index.js

を実行すると問題なく動きます

次に この package.json があるフォルダを dir1/foo/bar に配置して dir1 をカレントディレクトリとして実行しようとします

yarn node foo/bar/index.js

になりますが これだと依存パッケージを解決できずエラーです
カレントディレクトリを変更するために --cwd をつけて

yarn --cwd foo/bar node index.js

としてもエラーです

scripts にして yarn run を使えば行けるかなと思って試してみました

{
"name": "pkg",
"packageManager": "yarn@4.1.1",
"dependencies": {
"dayjs": "^1.11.10"
},
"type": "module",
"scripts": {
"start": "node index.js"
}
}

yarn --cwd foo/bar run start

しかしこれもダメでした
yarn run の場合は cwd なしだと scripts を認識できず start が見つからないエラーになるものです
それが 認識できて node index.js を実行してからエラーになってるので うまく動いてくれても良さそうなのですけど

エラーを見るとこんな感じです

root@787bf525a896:/dir1# yarn --cwd foo/bar node index.js
yarn node v1.22.22
warning package.json: No license field
node:internal/modules/esm/resolve:854
throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);
^

気になるのは v1.22.22 になってるところです
--cwd を考慮せず 今のカレントディレクトリで package.json を探して packageManager から yarn のバージョンを決めていそうです
--cwd を処理する時点では 1.22.22 で固定された後なので 期待する 4.1.1 にならないという動きみたいです
そうなるとわざわざカレントディレクトリを移動させないといけないですし それをしたくないようなところでは使えません

なにかと yarn の pnp は使いづらいのですよね
yarn v1 で node_modules を使う場合は カレントディレクトリを気にせず実行する .js ファイルから node_modules を探すのでカレントディレクトリによる問題は起きないです

未だに yarn berry には完全移行できてなくて 問題点が多いので いっそ pnpm の方に移ったほうがいいのかなと最近思ってます