Keys can only be bound to *commands*.

A command is a function which contains an `interactive` form. This is necessary even if your command takes no arguments.

Hence:

<!-- language: lang-el -->

    (global-set-key (kbd "C-x 8 l") (lambda () (interactive) (insert "λ")))

See also: <kbd>C-h</kbd><kbd>i</kbd><kbd>g</kbd> `(elisp) Defining Commands` <kbd>RET</kbd>