These terms are often used interchangeably, even though they are not the same thing.
In general programming, an array is defined as a collection of data, all of the same type and with a set number of values. Eg.
int array {40, 30, 20, 10, 0}
This will create an array with a length of 5, and initialize array[0] to 40, array[1] to 30, and so on.
With these kinds of arrays, refering to or attempting to set array[6] would result in an error. If you created an Int array with a string value included, it would also error. Eg.
int array {6, “string”} // This is not an integer value, so my program won’t work!
Roblox does not use typical arrays, it uses a native datatype called a “table”. A Roblox table is still a collection of data, however a table does not have a set number of values on creation and can hold any different types of data in the same table. Eg.
local thisTable = {40, “30”, 20.5, 10, false}
In Roblox, you can refer to thisTable[6] and nil will be returned, or you can set thisTable[6] to a value. There are also other similar datatype such as dictionaries and tuples, you can read up more on them on the web.