IMAP doesn't provide "MOVE" as part of the base spec -- it's an extension.
If it's there, then yes, the app will use it.
Otherwise, a message has to be copied and and deleted from the source folder.
My code does a copy first before deleting, because
1) copying also copies the message's flags, and you don't want \Deleted in the destination folder
2) messages marked with \Deleted can be easily "expunged" all at once, say by another mail app, too dangerous
3) and anyway, why not copy first then delete? it just feels right
Now you seem to be implying another, related, question -- why does it end up like this, not deleted (when the copy fails)?
Because "move to deleted" and "delete" are different things, looking from the user's perspective:
A message moved to Deleted continues to "live", and can still be found / opened / moved back.
And a message marked as \Deleted (and maybe even expunged by accident) is very different, at the very least it won't be visible in AquaMail and most other mail apps.