kkulonja: As written it's not something a native speaker would say, but almost :-) . If you said: "You have a good point" or "You make a good point" - then it would express the idea of "being right or correct." It wouldn't be quite the same, but similar. Using "good point" turns definite agreement into more of a concession.
This is an idiomatic phrase, just like in Spanish where the phrase "Tienes razón" literally translates to "you have reason", but like what was aforementioned it is an idiomatic phrase, meaning that it has a slightly different meaning from the sum of the words in the phrase. Just like how in English the idiomatic expression "hold your tongue" doesn't literally mean hold your hands against your tongue, it means to suppress any speech or just not talk at all, although "Tienes razón" could be easier to decipher than something like "hold your tongue" because reason, as in reasonability, is how rational or sensible something is, which could translate to being "right" or "rational", thus making "you're right" the correct answer. The answer "you have reason" is not necessarily wrong, but by accepting this answer, Duolingo would be wronging you in the sense of allowing you to think that literal translation from another language into your target language is correct. You need to ditch the mindset of translating from English and just think in your target language, which is what Duolingo is trying to teach you by not allowing "you have reason." Plus, it would sound weird and unnatural to say "you have reason" compared to just the simple "you're right." I hope this helps.
Hufflepuffitalia: I agree with NaveelKabi1's explanation of idiomatic phrases. I'd add that if DL accepted your answer, it would only lead to confusion since "you have reason..." could be correct in a different context, e..g "You have reason ...to be afraid." Or: "You have reason..to be concerned." These are different from the idiomatic expression "you are right" which stands alone, without a following infinitive clause.
I think the English has 2 meanings: "you have to be right' in the sense that 'you always have to be right, don't you!" said sarcastically. The other is 'you have to be right' in the sense that 'well, you must be right, i guess." and neither of these is implied I don't think by the italian. I can't say anything about DL's hint though I imagine in a clearer context, the second suggestion I gave could apply, as e.g. "sì, sì, hai ragione," followed by a sad face!
Languages are not always literal and all have lots of idiomatic expressions that seldom overlap. Italian uses "avere" in many of these idioms. As to why 'avere' and not "essere"that's simply the way it is. Think of it this way, italian speakers would wonder why english speakers use the verb "to be" rather that "to have." Doesn't make sense to them either!