I haven’t slept for two days. も I haven’t slept in two days. もどちらも正しいですよ。この2つは同じ意味です。
この他にも次のように表現できます。
ーI haven't slept for the last two nights.
「この二晩、寝ていない」
for the last two nights で「この二晩」
ーI haven't slept for over 48 hours.
「48時間以上寝ていない」
for over 48 hours で「48時間以上」
ご参考まで!
ご質問ありがとうございます。
「二日間眠っていない」と言いたいなら、「I haven't slept for two days.」と「I haven't slept in two days.」と言えます。
両方の言い方は正しいだし、ニュアンス的に一緒です。
2つの中に1つ選ばなきゃいけない場合、個人的に「I haven't slept for two days.」の方が一番ベストだと思います。
ご参考になれば幸いです。