Maybe I did not explain it correctly,
Display is perfectly fine when I start the app on the macbook's main screen. But if I drag the window to the other screen (non retina) to get the display broken (too big).
It seems pretty obvious to me that it is an issue with density/dpi difference between screens.
I never touched Interface Scale setting before, but it was set to 200. I did try to set it to 100, then display got twice smaller, meaning it is too small on my main retina screen, and fine on the other non retina screen. I would expect the interface scale to take screen density in account so that display doesn't get too small or too big when dragging the window from one screen to another. Currently, I need to change setting and restart spine if I want to move it to another screen.
By the way, the problem is not specific to my machine, I have a colleague who is having the same issue when moving window from one screen to another (mac as well, external screen non retina, main screen retina).