In functional languages, this same term is used with a different meaning. It refers to how values of free variables are obtained in an expression; here, the values of free variables are obtained from the context in which the expression is evaluated. For example, with this ML-like code:

let x = 1
in
let f y = x + y
in
let g f y =
  let x = 3
  in
    f y
in
 g f 2

the value of the free variable 'x' appearing in 'f' would be 3 when it is evaluated by 'g', so in an ML dialect that used dynamic binding the value of this expression would be 5.

Of course, use of this strategy precludes referential transparency, as an expression might have a different meaning if it is evaluated in a context with different bindings for its free variables. For the most part it's older functional languages that use this strategy, as it is generally easier to implement than static binding. Examples of languages that use dynamic binding include older LISP dialects such as Emacs Lisp and LISP IV.