I'm trying to derive an expression used in these notes.
At the bottom of page 10 the author states that the following relationship $$ \frac{d}{ds} = \frac{d\mathbf{r}}{ds}\cdot \nabla, $$ where $r(s) \in \mathbb{R}^3$.
So we have $$ \frac{d\mathbf{r}}{ds} = \left(\frac{dr_1}{ds}, \frac{dr_2}{ds}, \frac{dr_3}{ds} \right) $$ $$ \nabla = \left(\frac{d}{dr_1}, \frac{d}{dr_2}, \frac{d}{dr_3} \right) $$ Which means $$ \frac{d\mathbf{r}}{ds}\cdot \nabla = \frac{dr_1}{ds}\frac{d}{dr_1} + \frac{dr_2}{ds}\frac{d}{dr_2} + \frac{dr_3}{ds}\frac{d}{dr_3} $$
If I 'factor out' the $\frac{d}{ds}$ I get $$ \frac{d\mathbf{r}}{ds}\cdot \nabla = \frac{d}{ds}\left(\frac{dr_1}{dr_1} + \frac{dr_2}{dr_2} + \frac{dr_3}{dr_3}\right) = 3\frac{d}{ds} \neq \frac{d}{ds}. $$
So where have I gone wrong?
You’re making the all too common error of treating these symbols as if they were actual fractions. Although doing so is a very useful mnemonic device, in this context none of the symbols that begin with a $d$, and especially $d$ itself, has any independent meaning. The complete name of the operator is $\frac d{ds}$ and needs to be dealt with as a unit. Similarly, the elements of $\nabla$ that you have are also indivisible operator names. Unfortunately, the convention of sticking the function name in the numerator when you apply a differentiation operator to it encourages you to make this error. Moreover, you’ve used the notation for ordinary derivatives of single-variable functions in places where you should really be taking partial derivatives. To wit, you should probably have written $\left({\partial\over\partial r_1},{\partial\over\partial r_2},{\partial\over\partial r_3}\right)$ for $\nabla$. That might’ve reduced the temptation to “factor out” pieces of the notation, but in general you’ll have other partial derivatives in the terms that look like the ought to “cancel,” so using partial derivative symbols doesn’t always help.
Rewrite your equation, but this time separating the operator names from the functions to which they’re being applied: $$\left(\frac d{ds} \mathbf r\right)\cdot\nabla = \left({d\over ds}r_1\right){\partial\over\partial r_1} + \left({d\over ds}r_2\right){\partial\over\partial r_2} + \left({d\over ds}r_3\right){\partial\over\partial r_3}.$$ There doesn’t appear to be anything to factor out now.
It might become even more apparent with a different notation: For a single-variable function $f$, let $f'$ denote its derivative, and let $\partial_i$ denote the partial derivative operator with respect to the $i$th parameter of a multivariable function. Written in this notation, the equation becomes $$\mathbf r'\cdot\nabla = r_1'\partial_1+r_2'\partial_2+r_3'\partial_3.$$ There’s nothing here to even consider canceling or factoring out.
I’ll also note that you need to be careful about treating the gradient operator as a vector. Doing so works formally as a mnemonic for the $\operatorname{div}$ and $\operatorname{curl}$ operators and in some combinations with other operators, such as the example in your question, but there are other contexts in which treating it as a full-fledged vector will lead you to the wrong result.
Finally, the correct way to derive your identity is to apply the multivariable chain rule. This identity is in fact a special case of it.