I found the answer. Custom Grammar
will filter the user's pronunciation by giving lot of pressure to the engine to identify the user's voice with the provided LIMITED grammar.
Dictation grammar
is not like that, it will simply try to match WHAT COMPUTER UNDERSTOOD rather than what the user exactly said.
This can be minimized by training the speech engine.