ABSTRACT Freshwater fish communities differ widely across spatial scales due to environmental filtering and limited dispersal. However, the relative importance of these mechanisms is poorly understood, especially along subtropical elevational gradients. Species traits may further help to predict species niches and co‐occurrences and allow for generalisations across multiple ecosystems. We aimed to model the occurrence of fish species as a function of environmental covariates and distance, testing for the effects of traits and phylogeny on species niches and co‐occurrence patterns. We also aimed to test the consistency in these relationships between the river basins. We fitted two joint species distribution models (JSDM) to a dataset of fish sampled over multiple years, across the Teesta–Jaldhaka basins of the Eastern Himalayas. The effects of environmental filtering were stronger than those of distance. Elevation, total dissolved solutes, dissolved oxygen and stream width explained much variation in species occurrences, but their relative importance differed among basins. Traits explained relatively less variation in species niches and co‐occurrences, and their effects differed among basins. However, the residual phylogenetic signal in niches indicates that unmeasured traits likely play a stronger role. Environmental filtering primarily structures lotic fish communities along subtropical elevational gradients in the two adjacent Eastern Himalayan River basins. However, the relative influence of covariates and the nature of trait–niche relationships differs. This variability makes broad generalisations difficult across freshwater basins while providing an opportunity to test and explore the applicability of ecological filters in other riverine systems.