Hi Amin,
I believe that the problem is where you position the PlotLegends. It would need to go into the Plot function. This can be achieved like so:
Show[Histogram[cana, Automatic, "PDF"],
Plot[Evaluate[
PDF[#, x] & /@ Evaluate[Normal[(Normal@FindDistribution[cana, 5, All, TargetFunctions -> "Continuous"])][[All, 1]]]], {x, 0, 1200}, PlotLegends -> Automatic]]

But as you can see the labels are just from 1 to 5. This might be better for you:
dists = Evaluate[Normal[(Normal@FindDistribution[cana, 5, All, TargetFunctions -> "Continuous"])][[All, 1]]]; Show[
Histogram[cana, Automatic, "PDF"], Plot[Evaluate[PDF[#, x] & /@ dists], {x, 0, 1200},
PlotLegends -> Evaluate[StringReplace[#, "Distribution" -> " Distribution"] & /@ ToString /@ (Head /@ dists)]]]

Here I first generate the estimates for the distributions. When I plot it, I use these distributions twice: first for the actual plotting and second for the labelling. The funny code in the Labelling bit is only to get a space before "Distribution".
If you require the entire distributions (not just the head label) then it is one (or two depending on how you count) function shorter:
dists = Evaluate[Normal[(Normal@FindDistribution[cana, 5, All, TargetFunctions -> "Continuous"])][[All, 1]]];
Show[Histogram[cana, Automatic, "PDF"], Plot[Evaluate[PDF[#, x] & /@ dists], {x, 0, 1200},
PlotLegends -> Evaluate[StringReplace[#, "Distribution" -> " Distribution"] & /@ ToString /@ dists]]]

Best wishes,
Marco