If coverage metric shows high code coverage and a low functional coverage then one or more of following possibilities could be the cause:
1) Not all functionality is implemented in the design as per the specification. Hence the code for same is missing while functional coverage metrics exists with no test
2) There could be potential bugs in the functional coverage monitor implementation causing them to be not covered even though tests might be simulated and exercising the design code.
3) There could be a possibility that tests and stimulus exists for covering all features but those might be failing because of some bugs and hence being excluded from the measurement for functional coverage.
If coverage metric shows high functional coverage and a low code coverage then one or more of following possibilities could be the cause:
1) some redundant code is written in the design.
2) Extra code is written in the design coverage.
3) Re visit functional coverage see, if the functionality, is it captured correctly ?