Why does 我是长头发 mean "I have long hair" and not "I am long hair"?
There is no &quot;why&quot;. &quot;是&quot; in Chinese does not equal &quot;be&quot; in English.  This is just how languages work.
In Chinese, almost anything can follow &quot;是&quot;. The part after &quot;是&quot; is just a description or explanation of the part before &quot;是&quot;, not an equivalent.
Some examples:

他们回国的日期都定了，老张是明天，老李是后天。
我来中国是学习汉语，不是旅游。

You will encounter many more like this in your study of Chinese. Good luck!
PS: If you happen to know Japanese, thinking about how the part before and after &quot;は&quot; are not equivalent may help you understand (though of course the two languages are very different).
Edit: Since this simple answer gets quite a few upvotes, I think I could add a little more content.
I find the book 实用现代汉语语法 by 刘月华 et al. a useful book about modern Chinese grammar. Though the book is entirely in Chinese, it is aimed at learners of Chinese as a second language and covers many things that learners often find difficult.
The book devotes a whole section to sentences with &quot;是&quot;, from page 675 to 689. More than a dozen usages of &quot;是&quot; are listed. Some more examples:

他夏天总是一件T恤。
他总是这么一辆破自行车。
老王是个慢性子。
问：你们俩喜欢什么运动？答：他是足球，我是乒乓球。

The book argues that these sentences may seem &quot;illogical&quot; superficially and you can often add some words to the sentence to make it seem more logical (eg. &quot;老王是个慢性子（的人）&quot; ), but the changed sentence is often more cumbersome and less succinct. This kind of sentences with &quot;是&quot; (是字句) express ideas more vividly and vigorously while using less words, and Chinese love that.