In the first case, Tcl is opening the file, and Tcl knows how to decode that path.
In the second case, the path string is passed to an external program, a Windows program that does not know how to interpret that path, it only understand native paths, i.e., paths using backslash (\) separators.
This is a very common scenario, and why [file nativename] exists.
-Brian