His build implementation uses tail recursion which is not preferred in CL. One can build in a similar way that as shown at the end.
(defun build (list-1 list-2)
(loop
:for elem-1 :in list-1
:for elem-2 :in list-2
:collect (list elem-1 elem-2)))
A much bigger difference imho between Clojure and Common Lisp is that the former is built on abstractions, conj, while the latter is built on concrete cons cells. There are more other significant differences but I don't want to flame/argue.