A word for a person who wants to speak, but can't due to lack of courage or lack of conviction that what he speaks is correct

Solution 1:

I'd suggest diffident.

Modest or shy because of a lack of self-confidence.

‘a diffident youth’

Source: ODO

Solution 2:

timorous TFD

Full of apprehensiveness; timid. full of or subject to fear. characterized by or indicating fear or timidity: a timorous approach to a serious problem.

As in:

I reproached myself with being so timorous and cautious — Daniel Defoe

Solution 3:

The first word that springs to mind is "Shy".

You could also go with "self-effacing" or "timid"