findall returns the hg-handle. However, I find it strange that findobj fails, since HandleVisibility is on (by default). Matlab seems to behave this way and documentation is hard to read.
>> an = annotation('textbox',[0 0 1 1],'string','Hello','Tag','annotation');
>> h1 = findobj('Tag','annotation')
Empty matrix: 0-by-1
>> h2 = findall(0,'Tag','annotation')
>> get( h2, 'HandleVis' )
Yes, an and h2 seems to be the same
>> get( [an,h2], 'type' )
>> get( [an,h2], 'tag' )
However, you spotted the cause
>> axh = get( h2, 'parent' )
>> get( axh, 'HandleVis' )
annotation returns the handle of a hggroup, which is the child of an axes the HandleVisibility of which is off.