The pitch is not necessarily different from the actual width. The reason why arrays are padded is for better memory access.
If you look at the coalescing rules, you see that neighbouring threads should access neighbouring elements, but the base address (address for thread 0) should also be aligned to a fixed number of bytes.
If you would not pad the array in the X dimension, than it’s possible that e.g. accessing the the first element of the second row can not be coalesced.
When you create the array with a pitch call, then de driver will select an optimal padding for you and returns the pitch (number of bytes in each row) that you need to use to access the elements in rows other than row 0.