These files are simple memory dumps of the dictionary. They are specific to the executable (i.e., gforth file) they were created with. What’s worse, they are specific to the place on which the dictionary resided when the image was created. Now, there is no guarantee that the dictionary will reside at the same place the next time you start Gforth, so there’s no guarantee that a non-relocatable image will work the next time (Gforth will complain instead of crashing, though). Indeed, on OSs with (enabled) address-space randomization non-relocatable images are unlikely to work.
You can create a non-relocatable image file with
gforth app.fs -e "savesystem app.fi bye"
savesystem( "name" – ) gforth-0.4 “savesystem”