The cause of overheating in a Subaru Legacy can be attributed to several factors. Some common reasons include low coolant levels, a failed thermostat, a faulty water pump, a leaking head gasket, a blocked radiator, or a clogged engine oil cooler. It is important to have the issue diagnosed by a qualified mechanic in order to determine the exact cause of the overheating problem.