Ok so I got it. I thought that a cube will be UV unwrapped by default and that’s why I don’t need to mark seams and UV unwrap, but apparently I was mistaken.
I made an image explaining my process, but essentially I just added an Image Texture to my object in the Shading tab and made a new image Texture (Generated type = UV Grid)
Then I marked the seams of my object and UV unwrapped it and it immediately looked like I wanted it to.
Thank you for your responses. I though this would be unnecessary for a scaled cube, but I guess it is still required even for primitive meshes.