It would be OK to have these as built-in functions, but I think some
care is needed to implement them. You need to be careful about read
and write errors and possibly preserving access and modification time
stamps. Also, moving a file should be done with rename if possible
(only works if source and target files are on the same filesystem) but
should still work by copy and remove if not (and in that case, you
definitely must be careful about open/read/write/close errors). All
these little details add up to the reason that I chose to use cp and
mv, which presumably have all the bugs worked out.
Rather than inventing a solution just for Octave, I think it would
probably be good to use gnulib for these kinds of things, and to
enhance gnulib if there is some missing functionality.