Without the Common Lisp additions @tobin suggested, you have to test whether an optional argument was provided. Note that a let isn't actually necessary in this situation. I'd find this version more idiomatic:
(defun perform (entry &optional extra)
(or extra (setq extra fallback))
(perform-body entry extra))
The comments suggest that unless could be a better choice than or:
(defun perform (entry &optional extra)
(unless extra (setq extra fallback))
(perform-body entry extra))
Another point from the comments: a more purely functional approach uses let, like the question does, without needing two different names:
(defun my-perform (entry &optional extra)
(let ((extra (or extra fallback)))
(perform-body entry extra)))
Naturally, when the optional argument occurs only once, you can simply write:
(defun my-perform (entry &optional extra)
(perform-body entry (or extra fallback)))