✨ คำตอบที่ดีที่สุด ✨
まず前置詞がいる動詞と要らない動詞を比べます。
要る:go to Tokyo「東京へ(に)行く」
要らない:visit Tokyo 「東京を訪れる」
このように、基本的には「~を」と訳す場合は
動詞に「~を」という意味が含まれるので
前置詞は要りません。
直後に名詞(のかたまり)を置けばOKです。
前置詞が要る場合は基本的に「~へ、に、と、で」など
「~を」以外の時です。
(あくまでも基本的にですが、前置詞で「~へ」などの意味を表現します。)
goは「~へ行く」という使い方なので
前置詞+名詞が必要です。
次にstayの意味は「滞在する」ですが
基本的な使い方は「~に滞在する」なので前置詞が必要です。
stay in Tokyo「東京に滞在する」
しかし質問のように
前置詞が要るはずの動詞でも使わない事があります。
それがhome, here, thereなどを使うときです。
(これらは副詞と言います)
home「家に」
here「ここに」
there「そこに」
これらには「~に」という意味が含まれているので
「~に」を表す前置詞が不要になり
stay home「家にいる(=滞在する)」
stay here「ここにいる」
stay there「そこにいる」
と表すことになります。
stayがgoやcomeに代わっても同じです。
長くなりましたが、お力になれれば嬉しいです。
(homeとstayを書き間違えたので一度削除しました。)
追記 :
他の方が回答されている内容の通り
homeには副詞以外に名詞の働きもあります。
(双子のみたいに同じ見た目だけど違うものって感じです。)
そのため
stay home「家にいる」(副詞 : 家に)
stay at home「家でいる」(前置詞+名詞 : ~で+家)
の2通りの使い方があります。
前の回答者さんのおっしゃっているニュアンスの違いは、日本語にも現れています。
(日本人は「で」と「に」の違いを意識しないので分かりづらいですが…)