What you describe is not unusual. Many servos cannot move through a full 180°.
You should do some more tests using Servo.writeMicroseconds() because that allows you a wider range of movement. 1000 microsecs is about 0° and 2000 is about 180°. But you can try smaller and larger values.
In the Servo library in default mode write(0) is actually 544 microseconds and write(180) is 2400 microseconds. It's rare for a servo to respond to any greater range than that but it is very common for standard RC servos to have a maximum travel of around 120 degrees.
Which Futaba servo do you have? They make many different ones.
Unfortunately almost all Arduino documentation and many comments on these forums do confuse them, referring to things like the little SG90 as a servo motor. See Servo - Arduino Reference