https://qiita.com/ko1nksm/items/4907c1c88d478cac0be5

POSIX では Unicode を含むマルチバイトのロケールの文字に対応することになっていますが、現実的には対応していないコマンドがあります。商用 Unix はおそらく対応しているはずですが、Linux(GNU コマンド)や BSD 系 Unix では対応していない場合があります。Linux や BSD 系 Unix は POSIX に準拠していると主張してないので、完全対応していなくてもそういうものとして扱うしかありません。

さらに Unicode は数年おきにバージョンアップされます。最初のバージョンは 1991 年の 1.0 で収録されている文字は 7,129 文字です。現在の最新バージョンは 2023 年の 15.1 で収録されている文字は 149,813 文字です。収録されている文字の違いはソート順などに影響します。

それぞれの環境で Unicode への対応は異なり、ロケールに従えば環境ごとで結果が異なる可能性があり、ロケールに従わなければ(C ロケールでバイナリとして扱う)、一文字を一文字として扱うことができません。これを解決すると思われる C.UTF-8 ロケールは環境によって対応していない場合がありますし、話を最初に戻すと環境によってマルチバイトのロケールに対応していないコマンドがあります。

UNIX コマンドはマルチバイトという概念がなかった頃から互換性を保ちながら存在し続けており、その結果 Unicode への対応は中途半端で一貫性がない状態です。