簡単に
C:\msys64\msys2_shell.cmd -mingw64 -defterm
とすれば mintty じゃなくて cmd で bash が上がるので winpty のお世話にならずに済むのではないでしょうか。
msys2_shell.cmd の中を見ると、-defterm オプションを付けると login-shell が Windows の start コマンドで実行されるので、login-shell が cmd.exe で動作する、というからくりです。
というわけで面倒ですが MSYS2 MinGW 64-bit などのショートカットのリンク先を編集して、
C:\msys64\msys2_shell.cmd -mingw64
となっているところを
C:\msys64\msys2_shell.cmd -mingw64 -defterm
にしておくと楽かな? お好みでどうぞ、かな?
いま開いてる PowerShell の上で実行したい場合
そもそも新たなウィンドウすら不要で、今動かしているCLI端末でmingw64環境に移行したいのであれば、
PS C:\Users\demouser> C:\msys64\msys2_shell.cmd -mingw64 -defterm -no-start
demouser@demopc MINGW64 ~
$
ってな具合ですんなり移行してくれます。不慣れなbatファイルなんて書かなくていいんです。
なんで捨てるの?
msys2 で C言語を勉強している初心者が地味にハマる問題として、printf( )とscanf( )を組み合わせて簡単な対話型プログラムを書いたとき、mintty で動作している mingw 環境でCLIバイナリを動かすと、入力と出力の表示が噛み合わず、printf( )の出力がscanf( )の入力すべて受け付けてからじゃないと表示されない、みたいな問題が発生するためです。
これについては コンパイルしたCLIバイナリを winpty を通して実行すれば解決することが分かっているのですが、まあ、インストールを含めて忘れてしまいがちです。何とかならないかな? という一案でした。
なお、msys2は C:\msys64
にインストールしたという前提です。念のため。