The significant diffence is that CAN includes message collision avoidance and prioritisation/arbitration at a HARDWARE level. RS-485 does neither, so it is up to a Master device to schedule the bus timing and loading, whereas with CAN no master is required, and each device on the bus is able to simply transmit it's message at any time (although it is up to the bus architect to ensure that there is sufficient spare capacity on the bus, using suitable message prriorities to ensure that all devices get their fair share)