"Depends on what you want as a result. ls -R won't tell you which directory it found the file in, while find will.
Also, ls -R generates more output, which is subsequently filtered, while find searches specifically for what you wanted. Without having done measurements, I would guess that find is generally more efficient."
"Find is definitely the best tool for this job. The output of ls -R will be difficult to parse (the file names are interleaved with the directory names). Besides with ls you will have hard time dealing with names with spaces, whilst find . -name '*.jpeg' -print0 will generate a list separated by null-characters. xargs, grep and others have option to read this kind of input. This means all weird names are preserved."