A FUNCTION is a programming construct that accomplishes something.
A DESIGN is a plan of how to accomplish something.
A DESCRIPTION is some text that explains or describes something.
Therefore, a FUNCTION DESIGN is a plan of how a programming construct will accomplish something.
A FUNCTION DESCRIPTION is some text that explains it.
So how are they different?
Usually, a design comes before construction. A description can happen any time. So, a Function Design may contain a Function Description (and usually does). A Function Description generally won't stand alone...if it does, it was usually created after the Function was already built (sometimes YEARS later :) ).