The Free On-line Dictionary of Computing (30 December 2018):
In a dynamically scoped language, e.g. most
versions of Lisp, an identifier can be referred to, not
only in the block where it is declared, but also in any
function or procedure called from within that block, even if
the called procedure is declared outside the block.
This can be implemented as a simple stack of (identifier,
value) pairs, accessed by searching down from the top of stack
for the most recent instance of a given identifier.
The opposite is lexical scope. A common implementation of
dynamic scope is shallow binding.