If I were to guess, it's because the program has an extension associating with an interpreter application, and that association is handled by the Windows Shell framework's app/document launching API (like ShellExecuteEx, if I dimly recall), which is used by Explorer for running programs, but not by batch files.
Am I close?
You can click on the title at the top of the page and find out.