Initonly is a great feature that prevents ctors from growing into the unmaintainable soup of optional args, which inevitably happens as class gets used more while being worked on at the same time.
Right but that argument only works to say that it's better than argument soup in the constructor for injecting dependencies when (IMHO) we shouldn't be doing that in the first place anyway, as proper object composition would be much cleaner than either constructors or initonly.
What are ctors? And were they introduced with initonly?
The term ctor refers to good old type constructors. It's a common abbreviation, and it's even the keyword for defining constructors in .Net IL.