Find rational numbers $(x,y)$ such that $ (x^2 + y^2 - 2x)^2 = x^2 + y^2$

Cases in which $x$ or $y$ are $0$ are easily described, so suppose that neither are $0$.

Define $\lambda$ by $y=\lambda x$. Since $x,y\in \mathbb Q$, with neither of them equal to $0$, we see that $\lambda \in \mathbb Q$.

Your equation becomes $$\left( (1+\lambda^2)x^2-2x\right)^2=(1+\lambda^2)x^2$$

Divide through by $x^2$ to get $$\left( (1+\lambda^2)x-2\right)^2=(1+\lambda^2)\implies x=\frac {2\pm \sqrt {1+\lambda^2}}{1+\lambda^2}$$

We deduce that we are looking for $\lambda \in \mathbb Q$ such that $\sqrt {1+\lambda^2}\in \mathbb Q$. But taking any rational Pythagorean triple $(a,b,c)$ gives the solution $\lambda =\frac ba$. Conversely, given $\lambda=\frac mn\in \mathbb Q$ with $\sqrt {1+\lambda^2}=\frac rs\in \mathbb Q$, we have $$1+\frac {m^2}{n^2}=\frac {r^2}{s^2}\implies (ns)^2+(ms)^2=(rn)^2$$ so any rational point on your curve arises from a Pythagorean triple.

For example: starting with the triple $(3,4,5)$ gives us the solution $(\frac {33}{25},\frac {44}{25})$


An even easier route for generating rational points is to start from the parametric equations of the limaçon: $\left((1+2\cos\theta)\cos\theta,(1+2\cos\theta)\sin\theta\right)^\top$, and then perform the Weierstrass substitution $\cos\theta\mapsto\frac{1-u^2}{1+u^2},\;\sin\theta\mapsto\frac{2u}{1+u^2}$. Due to the nature of the substitution, you will not be able to obtain the point $(1,0)$, but all other rational points correspond to rational values of $u$.