103 is one of the errors you can get when stdin/out/err or in real Pascal output/input and erroutput are not set.
On Windows, Lazarus defaults to that in a GUI application. (Why I do not know, it is a windows only issue)
If you add {$apptype console} these handles will be created.
You can subsequently hide the console window in code..
It is a really stupid decision that Lazarus works like that on Windows, but Hey who am I to complain?
The developers are aware of that platform only issue. 
There is no valid reason for it to be not solved after years from a technical point of view.
Btw this non-feature is Delphi compatible....
This is simply how Windows applications with subsystem type GUI behave. That has nothing to do with Delphi or Lazarus.
ANY Windows application with subsystem type GUI will have its StdIO handles set to 0, only if it's of subsystem type CLI they will be allocated. You can see this easily when you start applications like
notepad from the command line: the terminal will not be blocked by the program. If it would be of subsystem type CLI then it would block the terminal. This is simply how Windows is designed and both Delphi and Lazarus/FPC cater to this by defaulting to GUI for convenience considering that the main application type
is a GUI application and you can be very sure that one of the first questions would be how to get rid of the console and followed by that how to have the application behave like any other GUI application on Windows.
So, no, this will not be changed.