If not supplied a Texture Coordinate node, Blender's procedural textures default to using Generated coordinates. These put X,Y,Z = 0 at the minimum XYZ of an object's bounding box, and X,Y,Z = 1 at the maximums. So if the object's dimensions are not equal (scaled or not), the texture will be stretched.
You can transform the Generated texture space in the object's Data tab > Texture Space panel, but it's more common to add a Texture Coordinate node, and explicitly put the texture into the Object's own space, which is measured from 0 at the object's origin, in Blender units along the object's local axes, before any object-level transformation.
If the texture is in the Object space, then it will rotate, translate, and scale with the object. (Then, if you scale in Object mode, the texture will stretch. If you scale the object's mesh, in Edit mode, or bake the object's scale transform into its mesh by Applying the scale, it will not.)