Sure, lets say you are using a ranged character, and you want to move to coordinates (50, 50) and attack anything that comes within your attack range during that move. Below are examples showing the difference between moveXY and move for this situation.
# moveXY will block all other commands until it completes, so you will move to (50, 50) first, and only after you arrive will you attack enemies within range. If you encounter an enemy en route, you will ignore it.
loop:
self.moveXY(50, 50)
target = self.findNearest(self.findEnemies())
if self.distanceTo(target) < self.attackRange:
self.attack(target)
# move is non-blocking, so you will move towards (50, 50), but will still be able to detect and attack enemies en route.
loop:
self.move({"x": 50, "y": 50})
target = self.findNearest(self.findEnemies())
if self.distanceTo(target) < self.attackRange:
self.attack(target)
Also, be aware that unlike moveXY, move will only function properly in a loop.
As for jump, I think its just intended as a way to move around faster. It does not seem to jump over obstacles or anything. Even on the Boots of Leaping the jump distance seems too short to be useful.