Usando o Ubuntu como exemplo.
O Ubuntu é uma distribuição que reúne muitos softwares, pequenos e grandes. Existem drivers gráficos, o servidor X e o Gnome, entre outros. O próprio Ubuntu não está desenvolvendo esse software. O Ubuntu está "apenas" empacotando o software juntos, certificando-se de que os componentes individuais funcionem juntos. Todo esse software que o Ubuntu está juntando é chamado upstream do ponto de vista do Ubuntu.
No processo de combinar todo esse software, bugs podem aparecer. O bug pode estar em um dos componentes do software, por exemplo, o gnome, ou pode ser do jeito muito especial que o Ubuntu está fazendo as coisas. Afinal, uma distribuição é uma distribuição porque faz algumas coisas de uma forma muito especial.
Se o bug é causado pela maneira como o Ubuntu está fazendo as coisas, então o Ubuntu terá que consertar esse bug. Se o bug estiver em um dos componentes do software, por exemplo, o Gnome, então o Ubuntu terá que corrigir o Gnome. Quando o Ubuntu envia o patch de volta ao Gnome, para que outros também possam se beneficiar do patch, o Ubuntu está enviando o patch upstream .
Se o Ubuntu decidir não enviar o patch upstream, ou o projeto upstream rejeitar o patch (mas o ubuntu decidir manter o patch), então o Ubuntu tecnicamente bifurcou o projeto.
O oposto do upstream seria downstream, o Ubuntu é downstream do Gnome. Eu não ouço / leio esse termo usado com frequência.
Veja também o artigo sobre upstream na Wikipedia.