Win32ネイティブ版Rubyは、できる限りUnix版と同等の動作をするように意図して作られていますが、 OS自体の制限などにより、いくつかの非互換性があります。また、実装上の制限・バグもいくつか残っているようです。
注意: このドキュメントは現状では不充分です。気づいたことのあるひとはどんどん書き足してください。
プロセスの扱い
最も重要な違いとして、fork が動作しないことがあげられます。Unix向けに書かれているデーモン系のアプリケーションが動かないのはこれが原因であることが多いでしょう。
実行権限の扱い
setuid などのプロセスの実行権限に関するメソッドは、(NT環境であっても)期待した動作はしません。
ファイルシステムの問題
Win32のファイルストリームにはテキストモードとバイナリモードの区別が存在します。何も考えずに "w" などのモードでファイルに出力すると、\n → \r\n 変換が起きるために、バイナリデータが破壊されるという問題が起きます。
File.chmod は読み出し許可・書き込み許可属性のみ操作できます。group/other に対する操作や実行許可の操作は無視されます。File.chownはエラーを返しませんが実際には何も行いません。
ドライブレター絡みで未だに幾つかの実装上の漏れがあります--DOSISH 対応。また、同様に、-Ksを指定してあっても、日本語ファイル名の扱いで問題が発生することがあります。
シェルの違いによる問題
Win32 ネイティブ版では、通常は外部シェルとして command.com / cmd.exe が使われます。そのため、Kernel#system メソッドなどでシェル経由で外部コマンドを起動した場合、プロセス制御などの操作を利用することはできません。
IOとRubyスレッド併用時の問題
Win32ネイティブ版ではIO待ちはスレッドをブロックします。現時点では適当な解決策もありません。