Why all voltage drop across NMOS MOSFET in ngspice
Your circuits used between the two programs are far from equivalent.  For starters, you're using totally different MOSFETs in each netlist.  In LTspice, you're using a VDMOS model for the Infineon BSC030N03MS.  The parameters are defined in Documents\LTspiceXVII\lib\cmp\standard.mos.  I copied and pasted the relevant line below:
.model BSC030N03MS VDMOS(Rg=1.5 Vto=2.52 Rd=1.65m Rs=254u Rb=834u Kp=388.3 Lambda=0.07 Cgdmin=73p Cgdmax=1.02n A=0.6 Cgs=4.17n Cjo=3.23n M=0.3 Is=25.4p VJ=0.9 N=1.11 TT=3n ksubthres=.1 mfg=Infineon Vds=30 Ron=3.8m Qg=27n)

A couple things to unpack here.  First, if you look at the model parameters the threshold voltage is the Vto and has a value of 2.52V, which you should be aware of.  Next, is the issue already addressed in the question's comments.  VDMOS models are for discrete power transistors, which are constructed in a way where the source and body are always tied together.  The nmos 3-terminal symbol you used in LTspice always copies the source node to the body node.  For integrated circuit MOSFETs, which we'll discuss below, you typically want to use the nmos4 4-terminal symbol so you can independently connect the body/bulk connection.
In your ngspice netlist, you are using a Level=49 Version=3.1 MOSFET which is a BSIM3 v3.1 model.  Lots of problems here.  First is that these are models for integrated circuit MOSFETs, and not discrete ones.  Second is that v3.1 of BSIM3 is outdated and not recommended for use according to the ngspice manual (section 11.2.10).  They recommend only using v3.3.0.  Third, you set the width to 1meter and length to half a meter.  That's a rather large MOSFET...probably takes up more space than my desk, which means it won't operate properly.  Last, you didn't specify any parameters for this MOSFET, which means it uses all default values.  You need to check out the BSIM3 manual link found within the ngspice manual to see all the defaults listed, beginning in Appendix A.2.  For example, the default threshold voltage is 0.7V for a BSIM3 v3.3.0 NMOS.
The last thing to address is your pulse source, which is also different between the two circuit netlists.  You didn't do us any favors by hiding your PULSE definition for V2 in the LTspice schematic, but I was able to roughly figure it out.  You are on two totally different time scales.  The LTspice one roughly has a period 20µs while the ngspice one has a period of 100ns.  This is a big difference since MOSFETs have switching characteristics depending on how fast you can charge/discharge the gate.
For your specific scenario, I recommend you make sure to use the same exact PULSE voltage source and also copy that .model BSC030N03MS VDMOS line referenced above into your ngspice netlist since ngspice also supports VDMOS models.  You shouldn't be using a BSIM3 for this kind of experiment, especially that gigantic one with all default values.
You can actually run your ngspice netlist text files within LTspice.  Just open them up and hit Simulate -&gt; Run.  The only thing you need to do is remove the .control / .endc section or add a * at the beginning of each of the lines for that section since LTspice doesn't recognize them.  I do this a lot when comparing outputs between both programs.