They have been removed from POSIX, with the following rationale:
This grep has been enhanced in an upwards-compatible way to provide the exact functionality of the historical egrep and fgrep commands as well. It was the clear intention of the standard developers to consolidate the three greps into a single command.
The old egrep and fgrep commands are likely to be supported for many years to come as implementation extensions, allowing historical applications to operate unmodified.
fgrep are basically temporary artifacts on the way to a complete
grep, which has now been available for a long time; they have served their purpose and are no longer needed, hence their deprecation.
Further evidence for this is to be found in old Unix releases:
fgrep didn’t have separate manpages, they were documented in the
grep manpage, which states explicitly
Ideally there should be only one grep,
but we don't know a single algorithm that spans a wide enough
range of space-time tradeoffs.