In := Hold[a.b] // FullForm Out := Hold[Dot[a,b]]
So far so good.
In := Hold[a_.b_] // FullForm Out := Hold[Times[Optional[Pattern[a,Blank]],Pattern[b,Blank]]]
Why does the Dot become Times? I have a feeling it has something to do with the Optional that also appears, but I can't find anything that explains what's going on in the documentation.