No hay una función directa para esto, pero puede hacerlo con un reemplazo:
declare @myvar varchar(20)
set @myvar = 'Hello World'
select len(@myvar) - len(replace(@myvar,'o',''))
Básicamente, esto le dice cuántos caracteres se eliminaron y, por lo tanto, cuántas instancias hubo.
Adicional:
Lo anterior se puede extender para contar las ocurrencias de una cadena de varios caracteres dividiendo por la longitud de la cadena que se busca. Por ejemplo:
declare @myvar varchar(max), @tocount varchar(20)
set @myvar = 'Hello World, Hello World'
set @tocount = 'lo'
select (len(@myvar) - len(replace(@myvar,@tocount,''))) / LEN(@tocount)