I am not a language designer, nor am I super familiar with Rust's design; but to me, these are all somewhat generic methods, and the fact that they all do the same thing for a &str to a String is more coincidence. Sometimes you will do the same thing even if the reason is different!
There are more ways than listed, too -- a large reason for it is that many of the choices are trait methods, and the traits are designed around (sometimes subtly) different goals and promises -- but the &str to String conversion happens to satisfy a great many of them. For instance the ToOwned trait is tied to the Borrow trait, which has specific conditions for behaving reasonably (e.g. in a HashMap implementation); the relationship between str and String meets these conditions.
(Another reason is that working with text is common, and str and String are the main representation of text in Rust, so things like the format machinery or parsing machinery also happen to produce Strings / consume &strs.)