You can’t dye cotton with food colouring.
I say dye in bold, because dye means something quite specific. It means applying a colourant, possibly with other chemicals, such that the fibre may develop a hue as intense as the colourant, and that the hue should not wash out, fade, or otherwise greatly change in intensity over the course of its use.
It is, on the other hand, entirely possible to stain cotton with food colouring – either the E-numbers type or the vegetable-extracts type, or indeed ketchup, red wine, blood, grass, and all those other annoying stains that Stain Devils were developed to counteract. But stains wash out, fade, and greatly diminish in intensity. They may not disappear entirely – I’m sure you have plenty of cotton dishcloths which have resisted detergents, bleach and boil-washes – but they do fade to indeterminately-coloured marking:
You can dye animal fibres and some synthetic fibres with a mixture of food-colouring (only the E-numbers type, though) and an acid such as vinegar or citric acid, and heat. For more information, see here: Thorn Maiden Dyeing.
The reasons for this lie in chemistry. Animal fibres are mainly proteins, which react well with acids and form a variety of bonds with the dye molecules in food colouring. On the other hand, plant fibres such as cotton are cellulose, with a waxy coat.
The waxes keep the dye acid out, and, while it is possible to get cellulose to react with (some, strong) acids, the result is glucose (it is a polysaccharide, after all) – and its reaction with vinegar (acetic acid) is very, very slow, and very, very weak.
Your gut should tell you this: your stomach contains hydrochloric acid, which tears through a steak, but passes wheat fibre undigested.