Facebook app enforce this— if you try to share something with pre-filled in text (put extra) , app doesn't know if it was written by the user or filled in by the app, so according to its policy, it makes no assumptions, ignores that text, and requires the user to write the text.
Check their privacy policy, in
IV. Application Integration Points
- [...]
- You must not pre-fill any of the fields associated with the following products, unless the user manually generated the content earlier in the workflow: Stream stories (user_message parameter for Facebook.streamPublish and FB.Connect.streamPublish, and message parameter for stream.publish), Photos (caption), Videos (description), Notes (title and content), Links (comment), and Jabber/XMPP.