The light from a fluorescent lamp is produced by an electric current discharging through a gas, typically mercury vapour, which releases photons in the UV-range. These are then absorbed by a thin phosphor coating on the inside of the glass tube, which re-emit a photon in the visible spectrum.
In order to generate the required voltage and maintain an arc through the gas, these lamps require a 'ballast' which, in the simplest case, consist of an inductor, or a solid-state electronic circuit, which generates a high enough voltage to ionize the gas and produce a discharge current through the tube. In some cases, a 'starter' filament is used to heat a cathode which discharges electrons into the gas. This 'starter' is disconnected once electric discharge is maintained through the tube.
When a starter is old and worn, there may be insufficient discharge current through the tube to keep the gas ionized, which can result in 'blinking' at the ends of the tube, as the starter filament is brought in and out of operation.
Depending upon the type of ballast and/or starter, you may need to replace the starter, eg: some electronic ballasts incorporate a the 'starter' function, in which case you may have to change the ballast. A worn lamp is usually indicated by dark patches at the ends of the tube.
A low voltage would typically result in repeated flickering at the ends of the tube or the lamp will not light at all, depending upon how low the voltage was. Some lamps may not
The 'dark waves' which appear through the tube at low voltage are the result of insufficient temperature within the tube to achieve full ionization of the gas, which could result from a low line voltage causing the starter to malfunction.