AbstractFileObject is written like this:
public boolean canRenameTo(FileObject newfile)
if (getFileSystem() == newfile.getFileSystem())
So when you move a File inside the same filesystem, Apache VFS thinks it is on another filesystem.
Thus, the file is copied instead of being moved.
getFileSystem().equals(newFile.getFileSystem()) should be used instead.