What is the difference between reboot and shutdown -r?

Nothing, both of them do the same task.

From the respective man pages:

man reboot:

reboot, halt, poweroff

These programs allow a system administrator to reboot, halt or poweroff the system.

man shutdown -r:

Requests that the system be rebooted after it has  been brought down.

Without the -f option for reboot, it will gracefully terminate all processes, sending signal 15. However, using reboot -f will invoke the reboot(2) system call itself (with REBOOTCOMMAND argument passed) and directly reboots the system.


From a similar question on Unix and linux:

Internally, reboot uses shutdown -r.