@nnyby has the correct answer, but for the life of me I couldn't get it to work until I recognized that the --link-dest be set to the source directory.
This appears to be a point of confusion in other questions and answers (here, and here).
For the sake of clarity, to create hard links on the destination, the --link-dest needs to be set to a relative path to the source directory.
Here is an example of using rsync to copy a source directory to a destination directory using correct and incorrect parameters, and also an example showing how the --hard-links(-H) option will work.
$ ls -lt source/
total 0
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file1
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file2
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file3
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file4
-rw-rw-r-- 2 smfrg smfrg 0 Aug 20 10:01 file5
-rw-rw-r-- 2 smfrg smfrg 0 Aug 20 10:01 file_hd
$ rsync -a --link-dest=../dest source/ dest/
$ ls -lt dest/
total 0
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file1
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file2
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file3
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file4
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file5
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file_hd
$ rsync -a --link-dest=../source source/ dest/
$ ls -lt dest/
total 0
-rw-rw-r-- 2 smfrg smfrg 0 Aug 20 10:01 file1
-rw-rw-r-- 2 smfrg smfrg 0 Aug 20 10:01 file2
-rw-rw-r-- 2 smfrg smfrg 0 Aug 20 10:01 file3
-rw-rw-r-- 2 smfrg smfrg 0 Aug 20 10:01 file4
-rw-rw-r-- 4 smfrg smfrg 0 Aug 20 10:01 file5
-rw-rw-r-- 4 smfrg smfrg 0 Aug 20 10:01 file_hd
$ rm -rf dest
$ rsync -aH source/ dest/
$ ls -lt dest/
total 0
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file1
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file2
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file3
-rw-rw-r-- 1 smfrg smfrg 0 Aug 20 10:01 file4
-rw-rw-r-- 2 smfrg smfrg 0 Aug 20 10:01 file5
-rw-rw-r-- 2 smfrg smfrg 0 Aug 20 10:01 file_hd