What do people mean with "canonical"?
The term canonical comes from the concept of canon, that is, when you follow a standardized way to do something, you follow the canon, hence the thing that you do is canonical.
In mathematics it specifically means that you build something following some rules defined (by diverse reasons) by the community of mathematicians, by example the canonical projections of some vector are the functions such that each projection coincide with a coordinate of the vector.
That is: exists infinite kind of collection of projections of a vector, but the canonical way is the "simplest", what follow the rule that if $\pi_k(\mathbf v)=v_k$ is a projection of the vector $\mathbf v$ then $v_k$ is a coordinate of $\mathbf v$.
A canon is defined when something can be constructed in many different ways and we choose one because it is more convenient. By example there are canonical (standard) cut branches of many commons complex functions.
The concept canonical is very similar to the concept conventional but the latter is used when you must choose something that excludes the other possibilities (i.e. we can have the convention that $0^0=1$, then $0^0=0$ is excluded as a possibility), but the former is applied when you choose some standard way to apply a map or a function (if we define a map as canonical this doesn't imply that all others maps are not well-defined).
IMO the best place to comprehend this complex concept is when you see canonical forms applied to matrices, graphs or word problems to define the representative for each equivalent class of objects: you need to define a convenient algebraic manipulation to define these representatives uniquely. Then you can work over the canonical representatives and derive theorems. I don't have a simple example of this situation, you will encounter some day if you dig a bit about these topics.
This wikipedia article about canonicalization in computer science is analogous (or equivalent) to the canonicalization in mathemathics.
Mostly it denotes a morphism which is ‘in the nature of things’, in the sense that it does not depend on any choice.
Let me explain with an example: a finite dimensional vector space $V$ is isomorphic to its dual, but this isomorphism is not canonical since it is defined by the choice of a basis $\mathcal B$ in $V$, and its dual basis $\mathcal B^*$ in $V^*$.
But the evaluation map from $V$ to its double-dual: \begin{align} V&\longrightarrow V^{**}\\ v&\longmapsto (f\mapsto f(v)) \end{align} is a canonical isomorphism.
I guess no one is able to answer the question "What is really meant by this ?"
However, I can tell you, how I find a way, to feel myself comfortable with notions "canonical" and "natural". I will tell you how I distinct these two.
Natural. Suppose that $X$ is some mathematical object, which induces, without any additional assumptions, other mathematical objects $A,B$ (even of the same kind). We may call $A$ and $B$ natural objects associated with $X.$
Example. With any Riemannian manifold $(M,g)$ we may associate two natural laplacians. Laplace-Beltrami operator $\Delta_g$ and Bochner Laplacian $\nabla^*\nabla$.
Canonical. Suppose that $X$ is some mathematical object, which induces, without any additional assumptions, a unique mathematical object $A$ of some kind. We may call $A$ the canonical object associated with $X.$
Example. With any Riemannian manifold $(M,g)$ we may associate unique metric preserving torsion free affine connection $\nabla$ called Levi-Civita connection. No one should be offended if someone would call this connection canonical.
However calling $\Delta_g$ or $\nabla^*\nabla$ canonical laplacian would be too much.
In my opinion every canonical object is natural, but not necessary contrary.
I purposly stated this in such fuzzy way, cause I think you may apply this notions everywhere you like.