As is often the case, it depends on the definition of "easier." CAN gets you a built-in multiple "master" priority scheme with collision detection and retransmission. It also, at least in every microcontroller-based implementation I've used, gets you some level of hardware message filtering, so nodes are only informed of a new message arrival if it is one they want to see. Application software or ISRs never have to see messages they aren't interested in.
The down side of message filtering is that every $#%!#$ manufacturer and pretty much every separate processor line implements the initialization of the message filter differently. It's good in that one may, if needed, pick a processor with a simple or complex filter as the task requires. But they can be a PITA to get setup sometimes.