The main difference is that -o is a logical
operator and -prune is an
action. The output is the same because of the rule "if the expression contains no actions other than -prune, -print is performed on all files for which the expression is true". For a detailed explanation of the -prune usage, you can check
this post of mine some time ago.