Solve gives you a set of solutions of the form of replacement rules {{x->s1}, {s->s2},...} where s1 et al. are the solutions. Reduce gives you a reduced form for the input expression.
How would you expect Solve to express this solution set as replacement rules? I suppose it could yield a discontinuous Piecewise function of a real parameter, but I think that's obscure and unlikely to be useful. So, it gives you an error, obscure as to the cause, but clear and concrete about the fix. While the solution set isn't reasonably represented by replacement rules, reducing an expression to an equivalent expression is possible here, and seems a useful way to represent the solution set.