Not a definition, exactly; I would say the situation is similar to that of forgetful functorforgetful functor. If I say there is a canonical isomorphism between X and Y, then what I mean is that if asked, pretty much everyone would choose the same isomorphism. A canonical isomorphism is very often a natural isomorphism in the sense of category theory, but the converse need not hold. A canonical isomorphism does not need to be the unique isomorphism between X and Y, though sometimes it is when X and Y are considered as equipped with some additional structure.
"There is a canonical isomorphism between the set of elements of a ring R and the set of ring maps $\mathbb{Z}[x] \to R$." Obviously, I mean for $r \in R$ to correspond to the ring map sending $x$ to $r$, although I could just as well send $x$ to $-r$.
"There is a canonical isomorphism between a finite-dimensional vector space V and its dual." No explanation needed, I suppose.
Maybe more interesting would be an example where the word "canonical" is arguably correct or incorrect; I can't think of one off-hand.
Addendum, after reading some of the other answers: I would emphasize that for me there is a difference between "natural" in the formal category-theoretic sense and "canonical". For one thing there is a linguistic distinction: if I am considering an isomorphism F between X and Y then "Theorem: F is a natural isomorphism" is perfectly acceptable but "Theorem: F is a canonical isomorphism" is very strange to me. There should be only one canonical isomorphism between two things, though what that isomorphism is could depend on context, e.g., "the canonical isomorphism $A \otimes B \to B \otimes A$" where $A$ and $B$ are graded abelian groups might mean different things to an algebraic geometer and an algebraic topologist.
Finally, this is hardly a definition, more of a rule of thumb: there is a canonical isomorphism between X and Y if and only if you would feel comfortable writing "X = Y".