You can truncate the lines to e.g. 252 characters (which becomes 255 with txt added).
while IFS= read -r line
do
printf "%s\n" "$line" > /tmp/"${line:0:252}"txt
done< /tmp/textFile.txt
This parameter expansion is from ksh93 and is also supported by Bash and newer versions of zsh, but not portable to sh. The native zsh syntax is $line[1,252] or ${line[1,252]}, the latter also supported by yash.
In any case, as, depending on the filesystem, the limit is often on the number of bytes rather than number of characters¹, the above may not work properly if the text has multibyte characters.
¹ macos can add further complications in that it may decompose characters such as those with diacritics into a decomposed form storing characters like é as U+0065 and U+0301 instead of just U+00E9 precomposed form.
$lineis several thousand characters long, there should be no actual issue in your script. It's unclear how long the lines in your input file are and what the maximum would be.the file names can even be sequencing numbers like 001 002 003 then I can rename them- so issplit -l 1all you need?