✓ Accepted answer
First: don't use Color3.new() if you're using 0-255 numbers.
Second: by doing textcolor = Color3.fromRGB(255,0,0), you're actually changing the value that the variable is holding. If you're willing to change a property, you have to refer to the object and then using that to change the property.
So this would be it:
local textcolor = script.Parent
wait()
while true do
textcolor.TextColor3 = Color3.fromRGB(255,0,0)
textcolor.TextColor3 = Color3.fromRGB(0,255,0)
textcolor.TextColor3 = Color3.fromRGB(0,0,255)
textcolor.TextColor3 = Color3.fromRGB(255,255,0)
textcolor.TextColor3 = Color3.fromRGB(0,255,255)
wait(0.1)
end