Of the three, only canonical-url has any usage guidance or tag wiki. The other two (canonical and rel-canonical) are bare. Glancing over the questions in each tag, there does not appear to be any meaningful distinction in usage. Should these tags be merged?
rel-canonical is a specific type of canonical implementation. It uses a meta tag. The other implementation for canonical URLs is 301 redirects. I'd keep rel-canonical separate from the others. I have written a tag wiki for rel-canonical.
canonical and canonical-url are probably similar enough to merge on this site. There could be canonical things other than URLs, but I'd expect that 99.9% of the usage of canonical refers to URLs. Because of that, I would prefer canonical-url to be the canonical of the two.
EDIT: The proposed merge of "canonical" and "canonical-url" has now been completed: