Too much for a comment, but there some things I do not see mentioned in the existing answers and comments. "Natural" and "canonical" have related but somewhat different meanings in mathematics. This doesn't mean everyone uses them perfectly in accordance to those meanings. But this is a common usage. I'll start out with "natural" first, then bring in "canonical".
The term natural actually has a precise mathematical meaning, defined in Category theory. In fact, Category theory was originally invented to define what "natural" means. (The first step to studying something is to define it, and once you've defined "natural transformations", you can use them to define "natural" more broadly.)
An intuitive grasp of "natural" is that it means something is definable by the generic properties of objects in the theory under study, rather than by properties of the specific objects for which the thing is being defined.
As Matthew Leingang has discussed, finite dimensional real vector spaces are isomorphic to their dual spaces. But in order to have such an isomophism, we have to pick a basis for the vector space. The isomorphism requires something specific to this vector space in order to define it. But we don't require that to define this isomorphism $\phi$ of a vector space with its second dual. We can define just from the definition of "dual of a real vector space": $$\forall v \in V, f \in V^*, \phi(v)(f) := f(v)$$
That is why $\phi$ is "natural".
But note this weasel wording in the description above: "in the theory under study". This is why "natural" becomes a word of art, rather than of precision: most of the time, we don't bother to lay out the category that allows a precise definition of "natural". That is left to our audience to deduce. You see, a little tightening of the category under discussion will suddenly turn the unnatural into natural. In finite-dimensional linear algebra, $V$ is not naturally isomorphic to $V^*$. But in the theory of matrices, a column space is naturally isomorphic to a row space by transposing, even though the row space is natually isomorphic to the dual of the column space.
When someone calls something "natural", you have to figure out in what context they are speaking. And this is where "canonical" comes in. When we call something "canonical" when there is a familiar (and obvious) context where it is natural, but we are (usually) working in a broader context where it is not natural. For example, the canonical basis of $\Bbb R^n$ is natural when discussing matrices and column spaces - so natural we don't even mention it, even though it underlies practically everything we do. But if we are considering $\Bbb R^n$ as an example of a vector space, then it is not natural, but is defined by non-vector-space properties of $\Bbb R^n$. So we use "canonical" to describe it instead.