"Nous avons chaud" means "We are hot", why not "Nous sommes chauds/chaudes"?
Completely anecdotal, but my french speaking husband explains that saying 'nous sommes chaud' means 'we are randy' or 'sexy', like saying 'damn, they're hot' as in 'I think they look good', likewise, in french, it would mean that you are available for sexy time. Not sure what went wrong with the usage but saying 'nous somme chaud' would most likely get some giggles. As did my question regarding this phrase.
The simple answer is just because - that's how it is. But possibly because the nature of heat - and being hot - were not well understood until well into the 19th Century when much of the French used today had already been codified. The famous French scientist Antoine Lavoisier thought heat was an invisible fluid called "caloric" that flowed from hot to colder objects. So the idea that you have "caloric" in your body that made you feel hot is not so strange. Whether that has anything to do with the answer to your question, here's another one: Why in English do we say we ARE hot, but we HAVE a fever?
It is idiomatic, i.e. it just is so ;) The same goes for "We are cold", "Nous avons froid". From your name I assume you know German, in which IIRC you say "Mir ist warm" ("To me it is warm"). There are a lot of ways to express it and they all make sense, you just have to learn the proper one for each language!
several comments : 1) "Nous sommes chauds" (plural, so -s needed). 2) "Il est chaud" = he has fever or he is sexy (of course depending on context). 3) "Elle est chaude" = she has fever or she is sexy (re. context). 4) "je ne suis pas très chaud pour jouer au tennis" = "I'm not very keen on playing tennis". 5) "Nous sommes chaudes" : perfectly correct (feminine, plural).