cygwinやmsys2,msysnなどminttyな環境で一部の対話型のコマンドがうまく動かないというのは有名な話。
で、端末の話は詳しくないので理由は分からないが、なぜかvagrantもこの問題に引っかかる。対話といってもy/nとか1,2,3とか選ぶだけなんだから普通にstdinから読んでくれればいいのに。
upする時のnic選択やdestroyの確認とかで、固まったり終了したり。
そんな時は
$ pacman -S winpty
等でwinptyをインストールし、bashrcやzshrcに
.bashrc
if [ -x /usr/bin/winpty ]; then
alias vagrant="winpty vagrant"
fi
としておくと幸せになれる。