The simple but confusing answer is: both are correct!
We can use both versions in written or spoken English.
In spoke English, "my name's" is preferred. It is faster an eliminate an entire syllable.
In formal or academic written English, "my name is" is preferred. Many professors will outlaw the use of contractions in academic English.
For everyday written English, both versions are fine. ESL textbooks generally teach both and make sure students know that they both have the same meaning.
The previous post saying that we normally say, "I am" is also correct. Many native speakers alternate between
"Hello, I'm Heather." and "Hello, my name's Heather."
For more information on speaking fluency and formal vs. informal speech - you can see these two detailed lesson plans:
Speaking with Fluency I http://www.associatedcontent.com/article/886233/lesson_plan_speaking_with_fluency.html?cat=4
Speaking with Fluency IIhttp://www.associatedcontent.com/article/888931/lesson_plan_speaking_with_fluency_part.html?cat=4