FCBs take up room in the application program's memory space.
FCBs offer no support for the hierarchical file structure (no access to files outside the current directory).
FCBs provide no support for file locking/sharing or record locking in networking environments.
In addition to the read or write call itself, file reads or writes using FCBs require manipulation of the FCB to set record size and record number, plus a previous call to a separate MS-DOS function to set the DTA address.
Random record I/O using FCBs for a file containing variable-length records is very clumsy and inconvenient.
You must use extended FCBs, which are incompatible with CP/M anyway, to access or create files with special attributes such as hidden, read-only, or system.
The FCB file functions have poor error reporting. This situation has been improved somewhat in MS-DOS version 3 because a program can call the added Int 21H Function 59H (Get Extended Error Information) after a failed FCB function to obtain additional information.
Microsoft discourages use of FCBs. FCBs will make your program more difficult to port to MS OS/2 later because MS OS/2 does not support FCBs in protected mode at all.