One (actually, one of the main, and actually its literal) purposes of the dative is denoting "giving something to someone". The notion of "giving" is interpreted very widely in languages that have a live dative to "do something for someone", and even "give a word to someone" and "give help to someone". That roughly explains why sagen, erklären helfen, and erzählen require the dative (as an optional object in addition to their mandatory accusative object).
The interpretation of "giving" does not so much extend to "lieben", so it forces the accusative. With respect to your "why is that" question, the answer is, as always in language questions, bluntly "because people talk that way". And, no, you should rather not expect or apply too much logic to a language.