Advanced Replication vs Oracle Streams
The two major benefits tend to be efficiency and flexibility.

Streams is a much more efficient architecture.  Rather than synchronously capturing changes in materialized view logs which adds overhead to the transaction, Streams mines the redo logs that are generated by the change in order to generate the change vector to send to the target system.  That also allows the change to be replicated to the other system(s) much more quickly.

Streams is a much more flexible architecture.  You can write your own custom apply processes which makes it relatively easy to inject additional processing or logging, to ignore certain changes, etc.  You can send a Streams logical change record (LCR) to a JMS queue or to a non-Oracle system (though, of course, you'd need to write code to apply the LCR on the non-Oracle system).