1。the commands are doing the same but there is a little difference:

copy run start

prompts you to confirm the destination filename, while wr does not.

Which can be used in some scriptes, e.g.

2。The write commands work in IOS versions before 12.0.  Both work in current IOSes.

3。I use whatever has the fewest keystrokes , which is wr mem ,   shorter than doing a copy run start .   The strange one I haven't figured out is saving to a tftp server .  They want you to use some convoluted long  string like copy runn tftp / <address> ,  it is a lot simpler to just use the "write net" command  .