Print values of an array while stripping out some parts of the string
I'm assuming that file=${file//*lettus_} is supposed to be file=${file##*lettus_}.
Don't do file=. There is no reason to declare the file variable before-hand. Using it is a the loop variable automatically creates it.
Get rid of the temporary ARRAY1 variable (which fyi is not a good variable name). Just do for file in lettus_*.sh. In fact, since you don't quote ${ARRAY1[@]}, word-splitting would make your program fail in some cases.
Why do you want a more efficient way? This should run in a split-second unless you have a million files.