Controlling Solenoids using Relay vs Transistor
Generally speaking, using a relay does a few things for you.


The relay has very low contact resistance, so it doesn't waste as
much power as an IC trying to direct drive a solenoid.  
It lets you use lower voltage power supplies for your control logic, which
    enables faster processing and higher efficiency of the control
    boards.  
It provides isolation between the operating stages of the system, so a fault on your solenoid only blows up a 10 dollar plug and play relay instead of a 200 dollar surface mount board that requires special certifications to repair (for instance).
They can control multiple outputs with a single device, including
inverse logic (that is, a set of contacts that open instead of
close.
They are well known and extensively tested, requiring next to no
development effort.
Relatively cheap relays can drive pretty severe currents, and don't
experience problems with things like current slew rate.
Industrial electricians know exactly what they are and can work on
them without further training or certification - most electricians
couldn't identify and select the right MOSFET for the task, even if
they could solder it back on the board. (I'm an electrician, trust
me on this one!)


MOSFET or power switching BJT transistors could do the job, absolutely. It really depends on who you have working on the system when something goes wrong, how modular you want it to be, how often you need it to cycle, and how long you want repairs to take if something happens. If you needed the thing to cycle quite often, or very quickly, you'd probably want to use the transistor solution. In a real world scenario, this means anyone using that machine will have to keep a spare control board laying around to minimize down time if there is a fault, instead of a spare generic relay that might be installed in 15 other machines also. It's not a bad thing, it's a decision. Also, you would need additional transistors to provide inverse logic, if you still needed it.

Sometimes engineering is about making the smallest package possible; sometimes it isn't. Quality is about giving people what they want.