What's the difference? Is there a difference at all?
The obvious difference is that "derivative (work)" is a legal term, and "fork" is a software term.
For example, the musical and motion picture "West Side Story" (by Jerome Robbins, Robert Wise, Arthur Laurents and Ernest Lehman) is a derivative work of the stage play "Romeo and Juliet" (by William Shakespeare), which is a derivative work of the poem "The Tragical History of Romeus and Juliet" (by Arthur Brooke). I doubt you'll hear anyone (except perhaps die-hard hackers) say that Shakespeare "forked" Brooke's poem.
What is the relationship between the software term and the legal term?
A "fork" of a software project may simply be an alternate branch in a Source Control System (SCS) where code is held under joint copyright by a community of cooperating programmers. In that case, a fork is not a derivative.
A derivative may also result from some sort of transformation of the original that is different enough to result in a new copyrightable work. For instance, when the author of a novel writes the screenplay for a motion picture adaptation of his novel, then the screenplay is a derivative work of the novel, even if both are created by the same person.
However, if somebody takes software away from one community, and sets up a separate community and proceed to develop this separate version of the software (a "schism in the community"), then creating a "fork" also means creating a "derivative work" in the legal sense - and this situation is probably the context of this question, as it applies specifically to free and open source software, so I'll discuss it in a bit more detail:
We typically use the legal term "derivative work" instead of the software term "fork" when the legality of creating a fork of a software project is disputed: Since creating a derivative work is a reserved right, creating a derivative work (including, but limited to, a "fork") requires permission from the copyright holder. If there is no permission, this is illegal.
So there exists "forks" (inside a SCS) that are not derivative works. There also exists derivative software (i.e. software that a court of law says is a derivative work), without being a fork.
One example of the latter is the 9th circuit ruling on Micro Star v. FormGen Inc., where the court decided that sharing a specific file format was sufficient to make a CD-ROM with fan generated "levels" for a video game a derivative work of said game.
Why do we still have the terms? Can't we just use a single term?
The legal term "derivative work" (and its close sibling "adaptation") tends to be used when one needs to decide on whether a specific derivative is legal. In particular, when the disputed derivative is not a fork (as in the case "Micro Star v. FormGen Inc.", it is really helpful to use legal word "derivative" to explain the situation, as the word "fork" may not even apply to the specific situation at hand.
As I've argued above, a "fork" is not always a "derivative" and vice versa, so having a single term for both does not make much sense.
Bonus: When and where did the terms start to appear?
Use of "fork" without creating a derivative (in the context if having separate branches in a Source Control System where software is held in joint copyright is AFAIK as old as source control).
In the context of "forking" to create a derivative, Wikipedia says:
"Fork" is not known to have been used in the sense of a community schism during the origins of Lucid Emacs (now XEmacs) (1991) or the BSDs (1993–1994); Russ Nelson used the term "shattering" for this sort of fork in 1993, attributing it to John Gilmore. However, "fork" was in use in the present sense by 1995 to describe the XEmacs split, and was an understood usage in the GNU Project by 1996.
So "fork" seems to have first been applied to a community split (where somebody else took the software and created a derivative around 1994-1995.
The term "derivative work" is a very old legal term, but I've not been able to pin down exactly when it first appeared in legal literature. There is no trace of it in Statute of Anne (1710), which deals only with verbatim copies. However, in the USA, it surfaces in the exclusive-rights provision of the Copyright Act of 1909.
In the context of free software, I believe the first mention of the term "derivative" is in the GPLv1. The chief author of the GPL was Eben Moglen (professor law and legal history at Columbia University and chief author of the GPL) and it seems prudent of him to choose a well-established legal term to describe a transformed copy of a program to make sure the GPL stood up in court.