More often than not, a mechanical relay will require an external transistor anyway to energize it. A ULN2003A darlington array is something I see over and over in appliances that use relays. Mechanical relays are great in that they're usually agnostic regarding the load going across the contacts. You can run AC, DC, reactive loads, inductive loads, etc. But you usually cannot switch quickly and you want to look out for potential wear of the contacts by using snubbers and other circuits if the loads are not totally resistive in nature. For that matter, it is also good design practice to include a snubber diode on the input side of a relay to deal with the inductive kickback as the solenoid inside the relay is turned off.
As for SSRs and transistors, you have to pay more attention to the load being passed. Turning off a Triac with a DC load is difficult, for example

. SCR-based SSRs still require an AC load but will only allow 50% of the power to be applied. Most other commonly-used transistors will only tolerate DC loads (though they may accommodate a AC-component in the greater DC signal). So you need to characterize the load being applied and choose the appropriate transistor. Snubbers and so on may also be needed, SSRs sometimes incorporate them. But transistors allow the use of PWM in ways that mechanical relays usually do not (unless your time constant is quite long).
So, sorry not to give you hard and fast rules re: use of AC or DC. It all depends on the load, what you want to do control-wise, and your price point. SSRs are usually more expensive to implement properly for a given capacity than mechanical relays because they usually require heat sinks, the SSR costs more, etc. But the devil is in the details.