Technically in order to use analog write you would have to manually adjust the PWM frequency to match what would be within specification for the servo (or esc), and then set the PWM value (which would be duty cycle), for instance if you set the PWM frequency to 50HZ an analogWrite of 25 should set ESC to 0 throttle, 50 to high (you would need to actually do the math for this, these are just example values), but there are significant penalties that you must accept if you mess with the PWM frequency.
With servo.write, you can input values from 0-180 that correspond to angle of servo (90 being center), the servo library will map those value to a range of 1000-2000 (actually it is not exactly 1000-2000, and it is adjustable, but 1000-2000 will suffice for our conversation). The 1000-2000 value is the high on time of the pulse sent to the servo (or esc).
DigitalWrite with delays is the most realistic way to hand control these if you do not desire to use the servo library. If you are really wanting to use 0-255 you can map these values to 1000-2000...
esc1Output = map(myZerotoTwoFifyFiveValue, 0, 255, 1000, 2000);
digital(esc1Pin, high);
delay(esc1Output);
digital(esc1Pin, low);
delay(20000-esc1Output)
This would be the idea of how the servo library does it, except it uses timer interrupt so that your code does not block on delay() and instead of 0 and 255 the map values would be 0 and 180.
If you do not want to manually do all of these delays (as your code will stop for these delays) you probably want to use a timer interrupt, but if you are going to do that might as well use the servo library.
EDIT: You would have to check out your PWM frequency for your particular board, but on most pins I think it is 490hz, meaning that a value of like 125 should correspond to low throttle and maybe 250 would correspond to high throttle, but it is not likely your ESC would accept this high of a frequency.