Pode ser mais rápido porque não requer handshaking para começar a enviar pacotes com payload (não há nenhum conceito de conexão com UDP - você apenas envia pacotes e espera que o outro receba coisas) e os cabeçalhos de pacotes são um pouco menores (embora para o tráfego em massa que resulta em pacotes grandes sendo enviados, isso provavelmente não é tão significativo).
Você não desejaria enviar dados dessa maneira - você teria que implementar a detecção de pacote ausente, reenvio de pacotes, reordenação de pacotes (eles nem sempre chegam na mesma ordem em que são enviados), detecção de congestionamento, e assim que o TCP faz por você. Uma vez que você adicionar tudo isso em você, quase certamente descobrirá que você não foi mais rápido (talvez muito mais lento) do que o TCP teria sido e você fez muito trabalho para chegar lá.
O TCP é bom para quando as informações em pacotes perdidos não precisam ser reenviadas, você deseja que implemente seu próprio controle de fluxo, ou você está agrupando fluxos TCP e semelhantes em seu próprio fluxo ( isto é, você está implementando uma VPN - TCP através de TCP pode ter problemas significativos de desempenho quando há congestionamento intermitente), não é bom para transferir dados em massa como ao tentar transmitir um arquivo de forma confiável (exceto no caso de VPN, é claro, mas você ainda usam o TCP dentro do wrapper da VPN).