É, como você disse, uma bifurcação. O que ele faz é definir uma função e chamá-la. A função é chamada : .
Vamos citar forkbomb para podermos ver melhor o que está acontecendo:
forkbomb(){ forkbomb|forkbomb& };forkbomb
Como você pode ver e provavelmente adivinhar a partir de sua experiência de programação, a primeira parte é a definição da função ( forkbomb(){ ... } ), e o último : é onde a função é chamada (o ; apenas separa instruções em Bash).
Agora, o que essa função faz? Se você estiver familiarizado com o Bash, saberá que o caractere | canaliza a saída padrão de um comando / programa para a entrada padrão de outro. Então, basicamente, :|: inicia duas instâncias da função (isso é onde "forks").
E então a mágica: o & coloca esses comandos em segundo plano, permitindo que a função original retorne, enquanto cada instância se bifurca até que as vacas voltem para casa em segundo plano, usando assim todos os seus recursos e derrubando as sistema (a menos que tenha limites impostos).