I'm experienced C++ programmer who have started to use more and more Rust. If you see my previous topics you will see where I struggled with Rust.
Regarding the above, the reason I think is Rc and Arc makes the contained object immutable and it is just easier to declare a variable mutable. C++ equivalent would be using unique pointer and for the same reason programmers don't use it as it makes the reasoning and code changes difficult. Defaulting to shared pointer C++ is the easier way, hence I believe, it has become popular.
But shared pointer in C++ or Rc/Arc in Rust shouldn't be used where it doesn't have to be. Shared pointer has performance cost, same with Arc. Rc is better in performance than shared pointer or Arc but still it doesn't have to be used where it shouldn't have to be.
People struggle with Rust because they can't get away with sloppy practices (compiler enforces better code). But once the code is compiled, programmer knows, chances of having memory bugs are low. For more information see Microsoft Security Response Center blogs and why they started to look into Rust. 70% of the serious security bugs in C/C++ software comes from overlooked memory safety issues and these are one of the top programmers in the world, if they are having difficult time then what it tells about rest of the programmers?