The define function definition macro provides a convenient way to define functions that have no generic properties and hence are not suitable for definition with define generic or define method. This extension has been accepted as part of the language since the DRM was published.
The define function macro provides a way of defining a function that says clearly to other programmers that the function is not part of any generic operation; furthermore, the function will not be extended as a generic function, and calling it need not involve any generic dispatch. Without this macro, programmers who wanted to do so would have to turn to define constant. With define function, programmer intent is more explicit and it relays more information to future maintainers of a piece of code.
The language definition of define function explicitly does not specify what it expands into, so that Dylan implementations have latitude to support this definer in the best way suited to the implementation.