Using the $fs->create_file_from_storedfile() function ( https://github.com/moodle/moodle/blob/master/lib/filestorage/file_storage.php#l950 ).
Assuming $file is the file you want to move and $fs is initialised by get_file_storage();
$dest = array('filearea' => 'destination_area'); // You can also include contextid, component, etc. here, if you want to.
$fs->create_file_from_storedfile($dest, $file);
$file->delete();
Due to the efficient storage of the data, the file on the disk is never actually copied, just a new database record created and the old one deleted.