should developers have a say in functional requirements
In general most online resources point out that the functional requirements are the responsibility of the business analyst or product manager. But developers sometimes can be the expert on a product e.g. because they have been working on it for years. Should they, in that case, be included in the functional requirements gathering process? If not, why not?
I fail to see how you can carry out requirements engineering activities effectively without the involvement of developers.
A business analyst or product manager may be very good at working with stakeholders to understand their needs and how to close the gap between the current state of the product and the stakeholder need. However, requirements also need to be analyzed for feasibility and testability, and the technical people on the project are the best to make those assessments. The architecture of the system has an impact on the effort required to implement a requirement or set of requirements, so input from the development staff is also important to consider when applying order to the list of requirements.
I'm not sure that the technical staff needs to be involved in gathering the requirements, but they should be involved in the process at various points. Earlier involvement to bring to light issues with implementing, testing, and deploying or operating the functionality represented by the requirement will improve the overall quality of the system under design.