A expressão «tenho dito» está correcta, porque assim se fixou. Não precisa de complemento directo explícito («tenho-o dito», em vez de «tenho dito»), nem mesmo sob a forma do pronome complemento o (não é artigo) porque, ao contrário do espanhol, o português permite a omissão do complemento directo (complemento nulo), quando se usa um verbo transitivo.
Na Gramática da Língua Portuguesa, de M.ª Helena Mira Mateus et al. (Lisboa, Editorial caminho, 2003, pág. 886/887), descreve-se esta particularidade do português:
«O português admite mais generalizadamente do que outras línguas românicas complementos nulos dos verbos, em particular exibe objecto nulo [...]:
(12) O pedro comprou dois livros à filha e ofereceu [-] à filha.»