Normalmente, o escape do caractere + ( \+ ) resulta em um literal + , não um modificador. Este não é o caso de sed no Ubuntu 10.04, mas pode não estar no Solaris.
Meu melhor palpite é que isso é específico da implementação, então sed 's/[^0-9]\+//' pode funcionar.
Você também pode tentar sed -r 's/[^0-9]\+//' (onde -r significa expressões regulares estendidas ). Funciona no Ubuntu 10.04.