Some Portuguese players have also done this (Eusebio springs to mind) but it seems almost universal in Brazil and almost unknown everywhere else.
Not only that, but Brazilians in other sports don't do it, or at least not to the same extent. Sometimes they shorten their names (Ayrton Senna da Silva, Nelson Piquet Souto Mayor) but don't seem usually to adopt a "stage name" in the same way.
It's a reflection of the popularity and ubiquity of nicknames in Brazilian culture generally, when football began to be played in Brazil players were known by their surnames, following the English convention, but as the game grew popular at the start of the 20th c. nicknames began to be used instead.
The reasons for the popularity of nicknames in Brazil is attributed to factors such as the lack of literacy amongst the post-slavery population, who often had very long names and to the idea that proper names are seen as overly formal.
http://archive.indianexpress.com/news/the-long-and-short-of-brazilian-names/631324/
http://www.theguardian.com/notesandqueries/query/0,,-2200,00.html
http://www.fifa.com/newscentre/features/news/newsid=1333656/