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.