Psynaptik - Creating an object takes up system resource (albeit small) and doing so a number of times in one tick can cause a slight delay in the game play, especially on mobiles devices. By unnecessarily creating and destroying sprites you will kill your free memory pretty quickly and cause slowdowns. Imagine that the while loop example above has to loop 100 times before finding a suitable position for the enemy object. In the attached example, one function group moves a sprite 100 times per tick and the other creates and destroys 100 sprites per tick. There's no collision checking here - this is just an example of how much resource is required to create and destroy a sprite. Enable/disable each group and run in the debugger to compare cpu utilization.
So, if you want to destroy an object on collision then it would be far better to create only one new sprite and then use a while loop as above to position it. The OP was asking about moving a sprite hence the answer was to move the sprite - which is also the most efficient on your memory.