There are many languages available in the world which have no written form like shanghainese , Hakka etc . My question is, why a language do not have any written form ? What's the root cause of it ?
Writing is a technology, developed by human ingenuity within the last 5000 years. Most humans who have ever lived have had no access to that technology; and the global level of literacy reached 50% well under a century ago.
Why would you expect every language to be written?
Also, in many parts of the world, most people routinely speak several languags, and usually one or more of them have higher status, and are used to communicate with authorities. These higher status languages are almost certainly written now (though they would not necessarily have been two hundred years ago); but the other languages spoken may not be, especially if they are local. Sometimes it is even regional or national policy to prevent literacy in minority langauges.
Your title question asserts that there are few languages with no written form, and the body asserts that many languages have no written form. I'm guessing that you the titular assumption doesn't express your intent, but it is the more accurate statement. Most languages have a written form of some sort. However, most languages do not have a well-established, standardized written form. For example, there is substantial chaos in the writing of the Bantu language Logoori – no fixed, official orthography. Nevertheless, it is written, when people write in Logoori (which is not very often). Likewise the Kalenjin languages can be written, but there are multiple spelling schemes for the language, and not a single monolithic set of writing conventions. These languages are easily writable in a conventional fashion, and are so written, but the orthographic conventions are "fluid". The first question that ought to be answered is, what standard should be assumed in assessing whether a language "has a written form"?
One language that has no written form is Sentinelese. The reason why there is no written language is that it's illegal to visit their island and the evidence of arrows being shot at planes indicates that the inhabitants don't want an outsider invasion. Such isolated communities with no schools and no literacy at all are extremely rare in the modern world. Another possible example is Quinault, a Salishan language on the coast of Washington – the Quinault rejected linguists and anthropologists probing their culture, and it is possible that no written form was developed (maybe Jlawler knows more about that). On the other hand, Lushootseed has a written form, a standardized non-IPA Americanist phonetic transcription, which I thought only a linguist would love but it has been firmly embraced by the people (no doubt because Taqʷšəblu spent decades promulgating the language). In other words, (a) someone has to suggest a way of writing a language and (b) the people who speak the language have to accept that suggestion.
Languages which are so big that they are national languages enjoy the prestige of governmental support and potentially standardizing legislation. Hence in Norway, Bokmål and Nynorsk are two standardized ways of writing Norwegian. Local dialects like Northern Norwegian or Valdrismål are writable, but there isn't the same standardizing force dictating that there be just one way to write.
Since the vast majority of languages in the world are small local languages with limited resources or economic appeal, and most people speak one of a few major, standardized languages, systematic writing systems for most languages are not crucial. People can manage with a certain degree of variability in how they write the local language, if they do need / want to write the local language.