This MOSFET is only specified for operation at Vgs = 4.5V.
The RdsOn curve in the datasheet represents "typical" values but there is quite a lot of dispersion. If you want to be sure that the FET RdsON is below, say 10-20 mOhms at Vgs=3V then you need to have this specified in the datasheet.
The voltage across the 5ohm heater is 2.67V. 30mV across the Drain and Source.
So you have about half an amp and the FET has 60 mohms RdsON or double what you'd get at Vgs=4.5V... so while it isn't exactly the right FET for the job it will probably work. Note there is a lot of dispersion in MOSFET characteristics so several FETs from the same bit of cut tape may perform differently.
If you want to select a proper FET use the DigiKey search filter "Drive Voltage (Max Rds On, Min Rds On)". For example this FET has a proper RdsON spec for Vgs=2.5V:
The rest of the voltage is probably lost in the wires, or a bad contact somewhere.
If the arduino can provide 3.2V gate drive, then it is receiving at least that from the battery, but you only have 2.7V on the FET and resistor.
So the battery may sag a bit down to 3.2V, or the battery holder contact has a bit of resistance... but that doesn't account for the 0.5V difference between 3.2V and 2.7V! That's probably lost in the wiring.
Are your PCB traces wide enough?
You're not running high current through a breadboard?