Is it possible to do something like '/icons/[fName].dmi'?
I've tried var/icon/I= new/icon(file("/icons/[fName].dmi"))
Which should work? It says in the help that icon()'s first arg is a file.
But at run-time I get runtime error: bad icon operation

The way around this is to use fcopy_rsc() to copy a file to the cache at runtime:
Note the double quotes (" ") indicating this is a external file, not a cache file. Also, you can implicitly call fcopy_rsc() by passing an external filename to icon():
which does exactly the same thing.