Smart pointers manage lifetime automatically. You can't forget to delete or delete twice. Exception safety comes free. Ownership is documented in the type system. Raw pointers still have uses: non-owning references where you don't want overhead, interfacing with C code, and performance-critical sections.
But raw owning pointers are outdated. Modern C++ style: use smart pointers for ownership, raw pointers or references for non-owning access. The raw pointer says I'm borrowing this, while smart pointer says I own it.